Android響應按鈕點選事件的4種方法實現
阿新 • • 發佈:2019-01-31
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方法,不是很常用,簡單的測試可以使用的