【轉】Android - Button(按鈕)的響應點擊事件的4種寫法


原文網址:http://www.yrom.net/blog/2011/12/12/android-4-onclicklistener-of-button/

Button控件setOnclickListener(View.OnClickListener listener)來接收一個點擊事件的監聽器

  • 自定義一個點擊事件監聽器類
    讓其實現View.OnClickListener的onClick(View v)方法
1
2 3 4 5 
class MyOnClickListener implements View.OnclickListener{  public void onClick(View v){  ...  } } 

然后注冊到按鈕上

1
btn.setOnclickListener(new MyOnClickListener ()); 
  • 采用匿名內部類的形式
    當監聽器只適用一個按鈕時,可以將上面一個方法簡化:
1
2 3 4 5 
btn.setOnclickListener(new View.OnClickListener (){  public void onClick(View v){  ...  } }); 
  • 將當前Activity去實現View.OnClickListener
    在Activity中實現其onClick()方法。這樣可以使多個按鈕復用一個監聽器。
    注冊監聽時,只需將當前對象(this)給按鈕即可:
1
btn.setOnclickListener(this); 

Tips:用switch-case針對各個Button的id來做相應的響應: eg.

1
2 3 4 5 6 7 8 9 10 11 12 13 
public void onClick(View v){  switch(v.getId()){  case R.id.btn_login:  login();  break;  case R.id.btn_regist:  regist();  break;  default:  doSomething();  break;  } } 
  • 在布局文件中顯式指定按鈕的onClick屬性
    對應Activity的布局文件加入形如:
1
2 3 4 5 
<Button  android:onClick="click"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="@string/btn_text" /> 

這樣按鈕點擊時會利用反射的方式調用對應Activity中的click()方法:

1
2 3 
public void click(View v){ ... } 

一個Button只能有一個onClick屬性值,一個click()方法可以賦給多個Button。 在click()方法中可以針對Button的Id來做響應,參見上面的Tips。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM