Android onClick按鈕單擊事件的四種常用寫法
這里使用四種onClick單擊事件,來實現(xiàn)電話拔號器的DEMO。
XML文件
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="phone" android:ems="10" android:id="@+id/et_number" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/dial_number" android:id="@+id/bt_dial" android:layout_below="@id/et_number" android:layout_alignRight="@id/et_number" android:layout_alignEnd="@id/et_number" />
第一種、匿名內(nèi)部類:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt_dial = (Button) findViewById(R.id.bt_dial);
bt_dial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialPhone();
}
});
}
第二種、自定義單擊事件監(jiān)聽類:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_number = (EditText) MainActivity.this.findViewById(R.id.et_number);
Button bt_dial = (Button) findViewById(R.id.bt_dial);
bt_dial.setOnClickListener(new MyListener());
}
private class MyListener implements View.OnClickListener {
@Override
public void onClick(View view) {
dialPhone();
}
}
第三種、Activity繼承View.OnClickListener,由Activity實現(xiàn)OnClick(View view)方法,在OnClick(View view)方法中用switch-case對不同id代表的button進行相應(yīng)的處理:
public class MainActivity extends Activity implements View.OnClickListener {
EditText et_number;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_number = (EditText) MainActivity.this.findViewById(R.id.et_number);
Button bt_dial = (Button) findViewById(R.id.bt_dial);
bt_dial.setOnClickListener(this);
}
public void onClick(View view) {
switch (view.getId()){
case R.id.bt_dial:
dialPhone();
break;
default:
break;
}
}
}
第四種、在XML文件中顯示指定按鈕的onClick屬性,這樣點擊按鈕時會利用反射的方式調(diào)用對應(yīng)Activity中的click()方法:
<Button
android:onClick="dialPhoneMethod"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dial_number"
android:id="@+id/bt_dial"
android:layout_below="@id/et_number"
android:layout_alignRight="@id/et_number"
android:layout_alignEnd="@id/et_number" />
public void dialPhoneMethod(View view){
dialPhone();
}
private void dialPhone() {
String number = et_number.getText().toString().trim();
if (TextUtils.isEmpty(number)){
Toast.makeText(this, "電話號碼不能為空", Toast.LENGTH_LONG).show();
return;
}
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + number));
startActivity(intent);
}
總結(jié):
第四種寫法整個代碼中都不用聲明button就可以實現(xiàn)button的單擊事件。但通常不推薦這樣使用,第三種方法是onClick最佳的的使用方式。按鈕少的時候用匿名內(nèi)部類會比較快,比如寫demo測試的時候。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
- Android ButtonOnClick事件的寫法總結(jié)
- 詳談Android中onTouch與onClick事件的關(guān)系(必看)
- Android響應(yīng)事件onClick方法的五種實現(xiàn)方式小結(jié)
- Android ListView 子控件onClick正確獲取position的方法
- Android onClick方法與setOnClickListener方法對比
- Android使用TextView,設(shè)置onClick屬性無效的解決方法
- 三種Android單擊事件onclick的實現(xiàn)方法
- Android中button實現(xiàn)onclicklistener事件的兩種方式
- Android 布局中的android:onClick的使用方法總結(jié)
相關(guān)文章
Android JNI c/c++調(diào)用java的實例
這篇文章主要介紹了Android JNI c/c++調(diào)用java的實例的相關(guān)資料,需要的朋友可以參考下2017-07-07
Android 5.1 WebView內(nèi)存泄漏問題及快速解決方法
下面小編就為大家?guī)硪黄狝ndroid 5.1 WebView內(nèi)存泄漏問題及快速解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
解決Android-RecyclerView列表倒計時錯亂問題
這篇文章主要介紹了解決Android-RecyclerView列表倒計時錯亂問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Android實現(xiàn)可播放GIF動畫的ImageView
這篇文章主要為大家詳細介紹了Android實現(xiàn)可播放GIF動畫的ImageView,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09
Android Canvas和Bitmap結(jié)合繪圖詳解流程
在 Android Canvas 上繪圖非常難,在繪圖時需要理解許多不同的類和概念。這篇文章中,將介紹 Android 框架中可用的一些類,它們可以讓畫布使用時更輕松2021-11-11
Android實現(xiàn)波浪線效果(xml bitmap)
這篇文章主要介紹了Android xml bitmap實現(xiàn)波浪線效果,制作過程簡單,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-01-01
Android MarkTipsView文字標(biāo)識控件使用方法
這篇文章主要為大家詳細介紹了Android MarkTipsView文字標(biāo)識控件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-04-04

