在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; } } }