第一種方法:
在布局文件中指定一個(gè)方法來(lái)響應(yīng)點(diǎn)擊事件,布局文件的寫(xiě)法如下:
<Button
android:onClick="clicked"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn0" />
這樣當(dāng)點(diǎn)擊按鈕時(shí)丛肢,就會(huì)調(diào)用對(duì)應(yīng)的Activity的相應(yīng)的方法
public void clicked(View v){
//TODO
}
Andro
第二種方法
在Activity中或在XML中創(chuàng)建一個(gè)Button,我是在XML中通過(guò)id獲取Button
<Button
android:id="@+id/btn_log"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/btn_log"/>
在Activity中獲取通過(guò)id獲取到Button并給按鈕添加點(diǎn)擊的監(jiān)聽(tīng)者類(lèi)MyOnClickListener
Button btn = (Button)findViewById(R.id.btn_log);
btn.setOnClickListener(new MyOnClickListener());
實(shí)現(xiàn)按鈕點(diǎn)擊的接口
class MyOnClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
//實(shí)現(xiàn)點(diǎn)擊的方法
}
}
第三種方法:
在監(jiān)聽(tīng)器只接收一個(gè)按鈕點(diǎn)擊時(shí),可以采用
匿名內(nèi)部類(lèi)的形式
button.setOnclickListener(new View.OnClickListener (){
public void onClick(View v){
//TODO
}
});
第四種方法:
為了方便剿干,有時(shí)候我會(huì)直接讓Activity去實(shí)現(xiàn)View.OnClickListener接口蜂怎,這時(shí)候就只需要在Activity中實(shí)現(xiàn)接口的onClick()方法就可以了,同時(shí)也可以讓多個(gè)按鈕復(fù)用一個(gè)監(jiān)聽(tīng)器置尔。然后在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;
}
}
}