安卓开发--按键跳转页面,按键按下变色

前面已经介绍了一个空白按键工程的建立以及响应方式,可以参考这里:安卓开发--新建工程,新建虚拟手机,按键事件响应

安卓开发是页面跳转是基础!!!所以本篇博客介绍利用按键实现页面跳转,以及按钮按下变色。

前言

先介绍一下本次的代码基础

布局文件res/layout/activity_main.xml代码,布局了两个按键:

java 复制代码
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/btn1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按键1"
        android:textSize="50dp"
        />

    <Button
        android:id="@+id/btn2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按键2"
        android:textSize="50dp"
        />

</LinearLayout>

逻辑文件java/com/example/myfirstapp/MainActivity.java代码:

java 复制代码
package com.example.myfirstapp;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class MainActivity  extends AppCompatActivity {

    private Button mbt01;
    private Button mbt02;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mbt01=findViewById(R.id.btn1);
        mbt02=findViewById(R.id.btn2);
        setListeners();//调用方法
    }

    //写一个方法
    private void setListeners(){
        OnClick onclick=new OnClick();//实例化onclick
        mbt01.setOnClickListener(onclick);
        mbt02.setOnClickListener(onclick);
    }

    private class OnClick implements  View.OnClickListener{
        @Override
        public void onClick(View v) {

            switch (v.getId()){
                case R.id.btn1://跳到按钮界面
                    Log.d("btn1", "按钮1被点击了");
                    break;

                case R.id.btn2://跳到文本框界面
                    Log.d("btn2", "按钮2被点击了");
                    break;
            }

        }
    }
}

运行效果如图:

这里1表示代码,2是虚拟手机界面,3是Logcat窗口,4是点击后的log信息,可以看到按键1 2点击均有相应的反应。

1. 按键页面跳转

在上面的基础上,我们现在实现使用按键1进行页面跳转。

1.1 新建布局文件

首先,在文件夹res/layout中新建一个布局文件,文件名字activity_button.xml这是要跳转的目标界面。代码如下:

java 复制代码
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/btn3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按键3"
        android:textSize="50dp"
        />
    
</LinearLayout>

布局预览效果如图:

1.2 衔接布局文件

现在,在java/com/example/myfirstapp文件夹下面,新建Java class类文件,文件名ButtonActivity。代码先不管。

另外,在AndroidManifest.xml文件中,为上面新建的Java Class类文件ButtonActivity进行衔接。

在其代码中,新添加代码

java 复制代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
		。。。。
        <activity
			。。。。
        </activity>
        <activity android:name=".ButtonActivity"></activity>
    </application>

</manifest>

1.3 调用布局文件

修改逻辑文件java/com/example/myfirstapp/MainActivity.java代码,在上面的基础上做出如下修改:

java 复制代码
。。。
import android.content.Intent;

public class MainActivity  extends AppCompatActivity {
。。。
            switch (v.getId()){
                case R.id.btn1://跳到按钮界面
                    Log.d("btn1", "按钮1被点击了");
                    Intent intent = null;
                    intent=new Intent(MainActivity.this, ButtonActivity.class);
                    startActivity(intent);
                    break;

                case R.id.btn2://跳到文本框界面
                    Log.d("btn2", "按钮2被点击了");
                    break;
            }
。。。
}

然后再java/com/example/myfirstapp/ButtonActivity.java文件中,编写跳转后界面的逻辑:

java 复制代码
package com.example.myfirstapp;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;

public class ButtonActivity extends AppCompatActivity {

    private Button mbt03;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        mbt03=findViewById(R.id.btn3);
        setListeners();//调用方法
    }

    //写一个方法
    private void setListeners(){
        OnClick onclick=new OnClick();//实例化onclick
        mbt03.setOnClickListener(onclick);
    }

    private class OnClick implements  View.OnClickListener{

        @Override
        public void onClick(View v) {
            Log.d("btn3", "按钮3被点击了");
        }
    }
}

1.4 最终效果

相关推荐
服装学院的IT男1 小时前
【Android 13源码分析】WindowContainer窗口层级-4-Layer树
android
CCTV果冻爽2 小时前
Android 源码集成可卸载 APP
android
码农明明2 小时前
Android源码分析:从源头分析View事件的传递
android·操作系统·源码阅读
秋月霜风3 小时前
mariadb主从配置步骤
android·adb·mariadb
Python私教4 小时前
Python ORM 框架 SQLModel 快速入门教程
android·java·python
编程乐学5 小时前
基于Android Studio 蜜雪冰城(奶茶饮品点餐)—原创
android·gitee·android studio·大作业·安卓课设·奶茶点餐
problc6 小时前
Android中的引用类型:Weak Reference, Soft Reference, Phantom Reference 和 WeakHashMap
android
IH_LZH6 小时前
Broadcast:Android中实现组件及进程间通信
android·java·android studio·broadcast
去看全世界的云6 小时前
【Android】Handler用法及原理解析
android·java
机器之心7 小时前
o1 带火的 CoT 到底行不行?新论文引发了论战
android·人工智能