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

相关推荐
脚踏实地,坚持不懈!7 分钟前
Android 图形系统:图形总览 + SurfaceFlinger 与 WindowManager
android
2501_9159184116 分钟前
iOS 上架注意事项有哪些?Appuploader 的四个阶段自查清单
android·ios·小程序·https·uni-app·iphone·webview
张小姐的猫1 小时前
【MySQL】表的约束
android·linux·服务器·数据库·c++·mysql·adb
霍格沃兹测试学院-小舟畅学1 小时前
Playwright CLI:语义快照与局部检索,AI 如何找到正确的页面元素?
人工智能·microsoft
Kapaseker1 小时前
为什么程序员始终无法彻底解决内存泄漏?
android·kotlin
汤姆宝库1 小时前
推理工程深拆:调度、量化与投机解码
android·开发语言·kotlin
AirDroid_cn1 小时前
隔离风险:用备用机测试不明APP,电脑远程操控安卓保主力机安全
android·安全
恋猫de小郭2 小时前
Flutter 官方表示:AI 时代代码越来越容易写,为什么还要一套代码库?
android·前端·flutter
二宝哥2 小时前
把安卓平板变成电脑第二屏幕(扩展屏):局域网与外网方案全解析
android·电脑·平板·扩展屏
xiaoshiquan120617 小时前
Gradle 复合构建:宿主项目直接依赖 SDK 源码模块的配置实践
android