Android按钮Button

Button是程序用于和用户进行交互的一个重要控件。Button也是继承自TextView,既可以显示文本,又可以显示图片,二者在UI上的区别主要是 Button 控件有个按钮外观,提示用户单击。

图1 Button示意图

Button最主要的功能是通过单击来执行指定的操作,当用户单击Button后,Button会触发一个onClick事件,Android主要有以下三种监听并处理Button单击事件的方式。

1)在布局文件中指定onClick属性的方式设置单击事件。可以在布局文件中指定onClick属性的值来设置Button控件的单击事件,示例代码如下:

xml 复制代码
<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="92dp"
    android:layout_marginTop="95dp"
    android:text="Button"
    android:onClick="click"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

上述代码中,Button控件指定了onClick属性值为"click",则在Activity中定义实现单击事件的方法名必须定义为"click",与onClick属性的值(click)保持一致,代码如下:

java 复制代码
public void click(View view) {
    //此次添加点击事件响应

}

2)使用匿名内部类的方式设置单击事件。在Activity中,可以使用匿名内部类的方式为Button设置单击事件,代码如下:

java 复制代码
Button button = findViewById(R.id.button);

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        //此次添加点击事件响应
    }
});

上述代码中,通过为Button控件设置setOnClickListener()方法实现对Button控件单击事件的监听。setOnClickListener()方法中传递的参数是一个匿名内部类。如果监听到按钮被单击,那么程序会调用匿名内部类中的onClick()方法实现Button控件的单击事件。

3)Activity实现OnClickListener接口的方式设置单击事件。将当前Activity实现View.OnClickListener接口,同样可以为Button控件设置单击事件,示例代码如下:

java 复制代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = findViewById(R.id.button);

        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        //此次添加点击事件响应
    }
}

上述代码中,MainActivity通过实现View.OnClickListener接口中的onClick()方法来设置单击事件。需要注意的是,必须调用Button控件的setOnClickListener()方法设置单击监听事件,否则,Button控件的单击事件onClick()方法不会生效。

实现Button控件的单击事件的三种方式中,前两种方式适合界面上Button控件较少的情况,界面上Button控件较多时,建议使用第三种方式实现控件的单击事件。

做最简单的安卓入门教程,手把手视频、代码、答疑、教材全配齐;帮助每个想学习的人,学会安卓开发。
节选自《Android应用开发项目式教程》,机械工业出版社,2024年7月出版

相关推荐
张风捷特烈5 小时前
Flutter 伪3D绘制#03 | 轴测投影原理分析
android·flutter·canvas
W_chuanqi8 小时前
安装 Microsoft Visual C++ Build Tools
开发语言·c++·microsoft
omegayy9 小时前
Unity 2022.3.x部分Android设备播放视频黑屏问题
android·unity·视频播放·黑屏
mingqian_chu9 小时前
ubuntu中使用安卓模拟器
android·linux·ubuntu
自动花钱机9 小时前
Kotlin问题汇总
android·开发语言·kotlin
行墨11 小时前
Kotlin 主构造函数
android
前行的小黑炭11 小时前
Android从传统的XML转到Compose的变化:mutableStateOf、MutableStateFlow;有的使用by有的使用by remember
android·kotlin
_一条咸鱼_12 小时前
Android Compose 框架尺寸与密度深入剖析(五十五)
android
在狂风暴雨中奔跑12 小时前
使用AI开发Android界面
android·人工智能
行墨12 小时前
Kotlin 定义类与field关键
android