View的setOnClickListener的添加方法

作者:Liaodeity - 2016年05月21日

1)内部类

也是最长见的添加方法,通过内部类实现。还可以通过外部类实现,代码分离,全局监控Button

Btn = (Button) findViewById(R.id.bt1);
Btn.setOnClickListener(new OnClickListener() {
    
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        Toast.makeText(MainActivity.this, "点击触发,内部类", Toast.LENGTH_LONG).show();
    }
});

2)共享监控

当一个页面布局中要监控多个Button的时候,如果用第一种方法,代码将会有冗余。所以可以使用该方式来解决,共享一个

Listener,再通过代码执行判断处理逻辑。

        Btn1 = (Button) findViewById(R.id.bt1);
        Btn2 = (Button) findViewById(R.id.bt2);
        Btn1.setOnClickListener(listener);
        Btn2.setOnClickListener(listener);
    private OnClickListener listener =new OnClickListener() {
        
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Button  btn = (Button)v;
            switch(btn.getId()){
                case R.id.bt1:
                    Toast.makeText(MainActivity.this, "点击Btn1触发,Listener共享监听", Toast.LENGTH_LONG).show();
                    break;
                case R.id.bt2:
                    Toast.makeText(MainActivity.this, "点击Btn2触发,Listener共享监听", Toast.LENGTH_LONG).show();
                    break;
                    
            }
        }
    };

3)XML绑定监控

直接通过layout的android:onClick属性来进行绑定点击后处理的方法名称,类似于js的事件点击绑定。

xml部分代码

<Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="clickBtn3"
         />

java代码

public void clickBtn3(View view){
        Toast.makeText(MainActivity.this, "点击Btn3触发,xml元素绑定点击", Toast.LENGTH_LONG).show();
    }


本文作者: Liaodeity

本文链接: https://www.jianbaizhan.com/article/424

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!