除了課堂上介紹的設定的監聽器的方法,還有哪些辦法實現按鈕的響應?
方法一:指定按鈕功能
1)Activity_main.xml增加兩個按鈕:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:onClick="onClick"
android:text="Button1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:onClick="onClick"
android:text="Button2"
android:layout_marginStart="55dp"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/button1"/>
2)修改string.xml
<string name="button1">button1</string>
<string name="button2">button2</string>
3)修改MainActivity.java,增加如下內容
Toast tst;
public void onClick(View view){
switch (view.getId()){
case R.id.button1:
tst=Toast.makeText(this,"button1",Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst=Toast.makeText(this,"button2",Toast.LENGTH_SHORT);
tst.show();
break;
default:break;
}
}
總結:這種方法是在xml檔案中指定按鈕的onclick屬性,這樣點選按鈕就會利用反射的方式呼叫對應Activity中的onClick方法
方法二:自定義事件
1)增加onClick()方法
public void onClick(View view) {
switch (view.getId()){
case R.id.button1:
tst=Toast.makeText(MainActivity.this,"button1",Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst=Toast.makeText(MainActivity.this,"button2",Toast.LENGTH_SHORT);
tst.show();
break;
default:break;
}
2)在onCreate方法中呼叫onClick方法
btn1=(Button)findViewById(R.id.button1);
btn2=(Button)findViewById(R.id.button2);
btn1.setOnClickListener(new clickListener());
btn2.setOnClickListener(new clickListener());
方法三:
1)重寫onClick方法
public void onClick(View view){
switch (view.getId()){
case R.id.button1:
tst=Toast.makeText(MainActivity.this,"button1",Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst=Toast.makeText(MainActivity.this,"button2",Toast.LENGTH_SHORT);
tst.show();
break;
default:break;
}
}
2)修改onCreate方法
btn1=(Button)findViewById(R.id.button1);
btn2=(Button)findViewById(R.id.button2);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
總結:Activity繼承View.OnClickListener,由Activity實現OnClick(View view)方法,在OnClick(View view)方法中用switch-case對不同id代表的button進行相應的處理
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30046312/viewspace-2137133/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Androidx為Fragment中的按鈕設定監聽AndroidFragment
- [譯] 用 Flutter 實現 Facebook 的響應式按鈕Flutter
- 在 js 裡定義按鈕的響應函式JS函式
- 舉例說明寫一個button的按鈕的方法有哪些?
- iOS 11開發教程(二十一)iOS11應用檢視美化按鈕之實現按鈕的響應(1)iOS
- 多IP伺服器上監聽器的設定伺服器
- IQKeyboardManager 獲取完成按鈕的解決辦法
- Vue3 除了 keep-alive,還有哪些頁面快取的實現方案VueKeep-Alive快取
- 簡單介紹NMS的實現方法
- Simple WPF: WPF 實現按鈕的長按,短按功能
- 除了程式設計還有其它的要學程式設計
- 除了996 ICU,GitHub上還有哪些奇葩的專案?996Github
- 除了Excel,還有哪些好用的工時管理系統?Excel
- 程式設計師除了高薪外,還有哪些獲得收入的途徑?程式設計師高薪
- python使用裝飾器實現的事件中心(監聽器)Python事件
- LayoutTransiton實現簡單的錄製按鈕
- VUE動態路由和按鈕的實現Vue路由
- iOS 11開發教程(二十二)iOS11應用檢視實現按鈕的響應(2)iOS
- java鍵盤監聽之視窗監聽的實現Java
- 資料探勘的辦法有哪些
- 最全的HTTP響應狀態碼列表:除了404,HTTP狀態碼還有啥?HTTP
- 從linux伺服器進行下載,除了ftp還有哪些方法Linux伺服器FTP
- Vue響應式原理-如何監聽Array的變化?Vue
- iOS11開發教程(二十三)iOS11應用檢視實現按鈕的響應(3)iOS
- win10指紋開關按鈕灰色怎麼辦_win10指紋設定按鈕灰色的解決教程Win10
- 陣列有哪些方法支援響應式更新的?底層原理如何實現?陣列
- Angular InjectionToken APP_INITIALIZER 的實現方法介紹AngularAPP
- 應用設定Setting的實現
- 專案需要實現按鈕懸浮的功能, 實現後的記錄
- 除了 P 站,還有哪些站?
- 人人生成器test類的按鈕消失解決辦法
- element-ui的日期選擇框底部清空按鈕點選不關閉日期選擇框的實現辦法UI
- NX二次開發:一個DLL設定多個按鈕操作的方法
- Java面試題:Spring框架除了IOC和AOP,還有哪些好玩的設計模式?Java面試題Spring框架設計模式
- 記錄:iOS10 storyboard的帶有計時器功能的按鈕。iOS
- javaWeb中的監聽器JavaWeb
- unity 實現輪盤方式的按鈕滾動效果Unity
- Js Jquery 實現的按鈕倒數計時整理JSjQuery
- SAP Commerce Cloud Accelerator 的響應式 Theme 介紹Cloud