美文网首页
Android 按钮响应点击事件的4种写法

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

作者: So_365 | 来源:发表于2017-05-10 13:20 被阅读819次

    在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){  
        //响应事件 
    } 
     
    

    相关文章

      网友评论

          本文标题:Android 按钮响应点击事件的4种写法

          本文链接:https://www.haomeiwen.com/subject/mqtgtxtx.html