Android(安卓)OnClickListener 使用总结
16lz
2021-01-26
在android代码的编写实际情况中,经常会遇到有多个监听器实例的情况,这时候我们不用每一个都调用他们的OnClickListener方法,有两种比较方便有效的方法,总结如下:
1、定义一个新类并让它implementOnClickListener:
比如有多个按钮的情况,定义类如下:
class MyButtonClickListener implements OnClickListener {public void onClick(View v) {Button button = (Button) v;if (button == firstButton)myListener.showMessage(1);if (button == secondButton)myListener.showMessage(2);if (button == thirdButton)myListener.showMessage(3);}}
或者是:
class MyButtonClickListener1 implements OnClickListener {public void onClick(View v) {switch(v.getId()){case R.id.first_button:// your codebreak;case R.id.second_button:// your codebreak;default:break;}}
然后在按钮对象中设置该监听器即可:
firstButton.setOnClickListener(clickListener);secondButton.setOnClickListener(clickListener);thirdButton.setOnClickListener(clickListener);
2. 整个Activity implementOnClickListener方法:
如下:
public class MainActivity extends Activity implements OnClickListener
然后要设置监听器的时候可以这么使用:
messageLayout.setOnClickListener(this);contactsLayout.setOnClickListener(this);newsLayout.setOnClickListener(this);settingLayout.setOnClickListener(this);
参数设置为 this ,然后复写 onClick 方法即可。
@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.message_layout:// your codebreak;case R.id.contacts_layout:// your codebreak;case R.id.news_layout:// your codebreak;case R.id.setting_layout:// your codebreak;default:break;}}
因为这里implement OnClickListener 方法的是整个Activity,而这个Activity本身就是一个类,所以当它复写onClick方法之后,参数this就表示调用本身的onClick方法。
更多相关文章
- Android(安卓)之最新最全的Intent传递数据方法
- gradle 指定导出包的名字和路径
- android Activity runOnUiThread() 方法使用
- Android(安卓)Camera2 之 CameraCaptureSession 详解
- 【Android(安卓)Developers Training】 17. 停止和重启一个Activ
- Android-- ArrayAdapter用法举例
- android CountDownTimer
- 将LED驱动增加进内核的方法(Android_OK6410)
- Android(安卓)AsyncTask源码解析