Android - Button的響應(yīng)點擊事件的4種寫法

畢業(yè)后,在IBM干了一年,接觸了各種技術(shù),現(xiàn)在決定要認真做了Java程序員了。不過現(xiàn)在不急于追求Java的高深技術(shù),先重溫下Android的UI吧,畢竟寫了那么多的Service,卻沒寫幾個Activity。
對于Button的4種響應(yīng)屏幕點擊事件的方法也是快忘得差不多了,在此記錄一下吧。

1st.

用setOnclickListener(View.OnClickListener listener)來做接收一個點擊事件的監(jiān)聽器。
這個用法最為常用,只需要自定義一個點擊事件監(jiān)聽器類并實現(xiàn)View.OnClickListener的onClick(View v)方法
示例代碼如下:

class MyOnClickListener implements View.OnclickListener{
           public void onClick(View v){
           //TODO
      }
 };

然后就可以注冊到按鈕上了。

button.setOnClickListener(new MyOnClickListener ());

2th.

當(dāng)然,在監(jiān)聽器只適用一個按鈕時,也可以采用匿名內(nèi)部類的形式

button.setOnclickListener(new View.OnClickListener (){
     public void onClick(View v){
     //TODO
     }
});

3th.

為了方便,有時候我會直接讓Activity去實現(xiàn)View.OnClickListener接口,這時候就只需要在Activity中實現(xiàn)接口的onClick()方法就可以了,同時也可以讓多個按鈕復(fù)用一個監(jiān)聽器。然后在onClick()方法判斷下Button的id就好了。

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    ...
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ...
        btn.setOnclickListener(this);
    }

    public void onClick(View v){
        switch(v.getId()){
            case R.id.btn0:
                //TODO
                break;
            case R.id.btn1:
                //TODO
                break;
            default:
                //TODO
            break;
        }
    }
}

4th.

最后一種方法就是在布局文件中指定一個方法來響應(yīng)點擊事件。布局文件的寫法如下:

<Button
  android:onClick="clicked"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/btn0" />

這樣當(dāng)按鈕被點擊時,就會調(diào)用對應(yīng)的Activity中的相應(yīng)方法了。

public void clicked(View v){
//TODO
}

Android的Button相應(yīng)方法跟JavaSE的方式算是如出一轍了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容