在Android或Java开发中,对于button的OnClickListener有下面四种实现方式,可以根据需要选择合适的用法。

方法一:

适合场景:通用

 Button bt_Demo = (Button)findViewById(R.id.bt_Demo); bt_Demo.setOnClickListener(new OnClickListener() {  @Override  public void onClick(View v)  {   //响应Clicked事件   //......  } });

方法二:

适合场景:适合有多个button或者button数组时使用

Button bt_Demo = (Button)findViewById(R.id.bt_Demo); bt_Demo.setOnClickListener(listener);  private OnClickListener listener = new OnClickListener(){   @Override  public void onClick(View arg0) {   // TODO Auto-generated method stub      switch(arg0.getId()){      case R.id.bt_Demo:     //响应Clicked事件     //......     break;     default:     break;     }  } }

方法三:

适合场景:适合有多个button或者button数组时使用,这跟方法二其实差别不大

Button bt_Demo = (Button)findViewById(R.id.bt_Demo); bt_Demo.setOnClickListener(new ButtonListener()); private class ButtonListener implements OnClickListener{  @Override  public void onClick(View arg0) {    //响应Clicked事件    //......  }   }

方法四:

适合场景:适合界面上有不同类型的控件,这种方式将所有控件的onclick方法在一个方法里面实现,看起来比较简洁

  //在Activity中直接OnClickListener接口:     import android.view.View.OnClickListener;   public class MyActivity extends Activity implements OnClickListener {      @Override public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);     //按纽     Button bt_Demo = (Button)findViewById(R.id.bt_Demo);     bt_Demo.setOnClickListener(this);    }      //响应Click事件   public void onClick(View v) {       switch (v.getId()) {          case R.id.bt_Demo:      //响应Clicked事件     //......           break;          default:           break;       }    }     }

 参考: