View的setOnClickListener的添加方法
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 许可协议。转载请注明出处!