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 许可协议。转载请注明出处!