在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方法。



更多相关文章

  1. Android(安卓)之最新最全的Intent传递数据方法
  2. gradle 指定导出包的名字和路径
  3. android Activity runOnUiThread() 方法使用
  4. Android(安卓)Camera2 之 CameraCaptureSession 详解
  5. 【Android(安卓)Developers Training】 17. 停止和重启一个Activ
  6. Android-- ArrayAdapter用法举例
  7. android CountDownTimer
  8. 将LED驱动增加进内核的方法(Android_OK6410)
  9. Android(安卓)AsyncTask源码解析

随机推荐

  1. Android应用程序四大组件
  2. Android(安卓)SQLite详解
  3. Android(安卓)Graphics专题(1)--- Canvas基
  4. ActivityThread
  5. Android:开发自己的Launcher简单demo
  6. Google Android开发精华教程
  7. android是什么?
  8. Android(安卓)数据库SQLite的使用简单Dem
  9. android中Webview与javascript的交互(互相
  10. android 的handler 机制