在android代码的编写实际情况中,经常会遇到有多个监听器实例的情况,这时候我们不用每一个都调用他们的OnClickListener方法,有两种比较方便有效的方法,总结如下:
1、定义一个新类并让它implement OnClickListener:
比如有多个按钮的情况,定义类如下:
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 code break; case R.id.second_button: // your code break; default: break; } }
firstButton.setOnClickListener(clickListener); secondButton.setOnClickListener(clickListener); thirdButton.setOnClickListener(clickListener);
如下:
public class MainActivity extends Activity implements OnClickListener
messageLayout.setOnClickListener(this); contactsLayout.setOnClickListener(this); newsLayout.setOnClickListener(this); settingLayout.setOnClickListener(this);
@Override public void onClick(View v) { switch (v.getId()) { case R.id.message_layout: // your code break; case R.id.contacts_layout: // your code break; case R.id.news_layout: // your code break; case R.id.setting_layout: // your code break; default: break; } }