博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 按钮响应点击事件的三种实现方式
阅读量:4200 次
发布时间:2019-05-26

本文共 1716 字,大约阅读时间需要 5 分钟。

在 Android 开发中,按钮响应点击事件三种实现方法,下面依次介绍。

1. 匿名内部类

这种方式一般适用于自己写 demo 测试时使用,优点就是快速。

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button btn = findViewById(R.id.button);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // 响应事件                Toast.makeText(MainActivity.this,"测试按钮",Toast.LENGTH_SHORT).show();            }        });    }

2. 由 Activity 实现 OnClickListener 接口

这种方式是在项目中应用最多的写法。因为这种写法可以减少代码量,尤其是在 Activity 上有多个点击事件的时候,更加按钮的id来区分按钮响应;

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button btn = findViewById(R.id.button);        btn.setOnClickListener(this);    }    @Override    public void onClick(View v) {        //根据按钮 id 来区分是哪个按钮的点击事件;        switch (v.getId()){            case R.id.button:                // 响应事件                Toast.makeText(MainActivity.this,"测试按钮2",Toast.LENGTH_SHORT).show();                break;            // case 其他按钮            default:                break;        }    }

3. 在布局文件中添加 onClick 属性

这种方式不用在 Activity 中声明组件对象就可以响应点击事件,虽然在看起来很轻便,但是在维护测试的时候,不容易找到 button 相对应的点击事件,所以不太推荐使用。

首先在 XML 布局文件中添加 onClick 属性,android:onClick=“buttonClick”

在 Activity 中实现

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void buttonClick(View v){        // 响应事件        Toast.makeText(MainActivity.this,"测试按钮3",Toast.LENGTH_SHORT).show();    }

4. 运行效果

在这里插入图片描述

转载地址:http://erfli.baihongyu.com/

你可能感兴趣的文章
【HTML5/CSS/JS】A list of Font Awesome icons and their CSS content values(一)
查看>>
【HTML5/CSS/JS】<br>与<p>标签区别(二)
查看>>
【HTML5/CSS/JS】开发跨平台应用工具的选择(三)
查看>>
【心灵鸡汤】Give it five minutes不要让一个好主意随风而去
查看>>
【React Native】Invariant Violation: Application AwesomeProject has not been registered
查看>>
【ReactNative】真机上无法调试 could not connect to development server
查看>>
【XCode 4.6】常用快捷键 特别是格式化代码ctrl+i
查看>>
【iOS游戏开发】icon那点事 之 实际应用(二)
查看>>
【iOS游戏开发】icon那点事 之 图标设计(三)
查看>>
【IOS游戏开发】之测试发布(Distribution)
查看>>
【IOS游戏开发】之IPA破解原理
查看>>
【一天一道LeetCode】#45. Jump Game II
查看>>
【一天一道LeetCode】#46. Permutations
查看>>
【一天一道LeetCode】#47. Permutations II
查看>>
【一天一道LeetCode】#48. Rotate Image
查看>>
【一天一道LeetCode】#56. Merge Intervals
查看>>
【一天一道LeetCode】#57. Insert Interval
查看>>
【一天一道LeetCode】#58. Length of Last Word
查看>>
【一天一道LeetCode】#59. Spiral Matrix II
查看>>
【一天一道LeetCode】#30. Substring with Concatenation of All Words
查看>>