在 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. 运行效果

更多相关文章

  1. Android(安卓)Monkey
  2. Android(安卓)使用WebView点击左上角返回键和物理返回键回到上一
  3. Android(安卓)Studio中设置ButterKnife、android butterknife ze
  4. (原创)在Android(安卓)上运行 openCV ,并做灰度变化的一个例子
  5. Android输入输出机制之来龙去脉
  6. Android应用之基本的组件(一)
  7. android实现分享
  8. ubuntu 10.04 CTS 环境搭建
  9. Android(安卓)Https请求详细demo

随机推荐

  1. Unity实现脚本插件[Script Create Dialog
  2. 深入理解C#设计模式之策略模式 角色具体
  3. 设计一个c++ 通用链表:实现多态双向的功能
  4. 采用 C# 编写的学委助手详解及实例
  5. C++实现贪吃蛇游戏的详细步骤及实战演示
  6. Thinking in C++ 第一卷阅读全书笔记重点
  7. C/C++区别有哪些?很多人都不知道的比较方
  8. 原来斐波拉契数列还有这种写法,你知道吗?
  9. C++_STL常用容器总结:对组pair中关联容器
  10. c/c++字符串函数是什么类型和它是如何转