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進行相應的處理:
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)用對應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)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
- Android ButtonOnClick事件的寫法總結(jié)
- 詳談Android中onTouch與onClick事件的關(guān)系(必看)
- Android響應事件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 Service與Activity之間通信的幾種方式
這篇文章主要介紹了詳解Android Service與Activity之間通信的幾種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04使用Android WebSocket實現(xiàn)即時通訊功能
即時通訊(Instant Messaging)最重要的毫無疑問就是即時,不能有明顯的延遲,要實現(xiàn)IM的功能其實并不難,目前有很多第三方,比如極光的JMessage,都比較容易實現(xiàn)。本文通過實例代碼給大家分享Android WebSocket實現(xiàn)即時通訊功能,一起看看吧2019-10-10android.enableD8.desugaring?=?false引發(fā)問題解決
這篇文章主要為大家介紹了android.enableD8.desugaring?=?false引發(fā)問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03Android編程實現(xiàn)使用webView打開本地html文件的方法
這篇文章主要介紹了Android編程實現(xiàn)使用webView打開本地html文件的方法,結(jié)合實例形式分析了Android中webview布局及打開HTML文件的功能實現(xiàn)技巧,需要的朋友可以參考下2017-02-02android中SwipeRefresh實現(xiàn)各種上拉,下拉刷新示例
這篇文章主要介紹了android中SwipeRefresh實現(xiàn)各種上拉,下拉刷新示例,非常具有實用價值,需要的朋友可以參考下。2017-03-03Android仿今日頭條多個fragment懶加載的實現(xiàn)
我們在做應用開發(fā)的時候,一個Activity里面可能會以viewpager(或其他容器)與多個Fragment來組合使用,下面這篇文章主要給大家介紹了關(guān)于利用Android仿今日頭條多個fragment懶加載的相關(guān)資料,需要的朋友可以參考下。2017-12-12