1. 程式人生 > >Android響應按鈕點選事件的4種方法實現

Android響應按鈕點選事件的4種方法實現

  Android開發中我們經常會涉及到點選事件的繫結,我總結了4種方法給大家分享出來,供大家參考。

          下面以電話撥號器為例進行講解吧,首先我們在layout佈局檔案中進行佈局,設定一個EditText和Button,然後在Mainactivity分別對其進行宣告,通過findViewbyId進行查詢相應控制元件,讀取到EditText中的資訊,點選按鈕進行撥號。下面是相關程式碼

 
public class MainActivity extends Activity implements OnClickListener {
    private Button bt_dail;
    private EditText et_number;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

   bt_dail =  (Button) findViewById(R.id.bt_dial);
   et_number = (EditText) MainActivity.this.findViewById(R.id.et_number);
   //1.建立一個內部類定義點選事件
   //bt_dail.setOnClickListener(new MyListener());
   
   //2.採用匿名內部類建立點選事件
   
  /* bt_dail.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

callPhone();
}
});*/
   
   //3.讓Activity實現點選事件
//    bt_dail.setOnClickListener(this);
//    
}
   
   //4.在佈局檔案裡面繫結一個點選的方法
   public void dailButtonClicked(View view){
    callPhone();
   }
   
private void callPhone() {
String number = et_number.getText().toString().trim();
if(TextUtils.isEmpty(number)){
Toast.makeText(MainActivity.this, "號碼不能為空", Toast.LENGTH_SHORT).show();
}
//意圖
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
//url統一資源定位符 uri統一資源標示符
intent.setData(Uri.parse("tel:"+number));
//開啟一個新的介面
startActivity(intent);
}
public class MyListener implements OnClickListener{


       //當按鈕被點選的時候
@Override
public void onClick(View v) {

callPhone();
}}
//3.接口裡面實現未實現方法
public void onClick(View v) {
switch (v.getId()){
case R.id.bt_dial:
callPhone();
break;

default:
break;
}

}
}


        值得說明的是第三種方法可以通過switch方法通過查詢Id進行方法實現,避免了建立多個內部類的麻煩。第四種方法是在佈局檔案中Button中新增OnClick方法,不是很常用,簡單的測試可以使用的