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月出版

相关推荐
拭心3 小时前
Google 提供的 Android 端上大模型组件:MediaPipe LLM 介绍
android
带电的小王5 小时前
WhisperKit: Android 端测试 Whisper -- Android手机(Qualcomm GPU)部署音频大模型
android·智能手机·whisper·qualcomm
梦想平凡6 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
元争栈道6 小时前
webview和H5来实现的android短视频(短剧)音视频播放依赖控件
android·音视频
阿甘知识库7 小时前
宝塔面板跨服务器数据同步教程:双机备份零停机
android·运维·服务器·备份·同步·宝塔面板·建站
元争栈道7 小时前
webview+H5来实现的android短视频(短剧)音视频播放依赖控件资源
android·音视频
MuYe8 小时前
Android Hook - 动态加载so库
android
居居飒8 小时前
Android学习(四)-Kotlin编程语言-for循环
android·学习·kotlin
禁默8 小时前
2024年图像处理、多媒体技术与机器学习
图像处理·人工智能·microsoft
Henry_He11 小时前
桌面列表小部件不能点击的问题分析
android