Android 按钮响应点击事件的4种写法

在android 开发中,按钮响应点击事件有四种写法。下面依次介绍。

1. 匿名内部类

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

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        Button button = (Button)findViewById(R.id.btn);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               
                  //响应事件
            }
        });
    }

2. 自定义事件监听类

这种方式和第一种差不多,唯一的区别就是将响应事件的代码放到一个自定义的监听类里面。

@Override
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_register);  
              
        Button button = (Button)findViewById(R.id.btn);  
        button.setOnClickListener(new MyListener());  
    }  
  
//让自定义监听类去实现 View 的 OnClickListener 接口
    private class MyListener implements View.OnClickListener {  
    @Override  
    public void onClick(View v) {  
         
        //响应事件
    }  
}  

3. 由 Activity 实现 OnClickListener 接口

这种方式是在项目中应用最多的写法。因为这种写法可以减少代码量,尤其是在 Activity 上有多个点击事件的时候。

public class RegisterActivity extends Activity implements View.OnClickListener {  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_register);  
        
          
    Button button = (Button)findViewById(R.id.btn);  
        button.setOnClickListener(this); 
  
    }  
  
    public void onClick(View v) {  
  
//根据 id 来区分分别是哪个按钮的点击事件
        switch (v.getId()){  
            case R.id.btn:  
                //响应事件  
                break;  
            default:  
                break;  
        }  
    }  
}  

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

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

首先在 XML 布局文件中添加 onClick 属性

<Button  
        android:onClick="btnClick"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="@string/btn"  
        android:id="@+id/btn"  />  

在 Activity 中实现方法

public void btnClick(View v){  
    //响应事件 
} 
 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容