1. 程式人生 > >為Button點選事件註冊監聽器的兩種方法

為Button點選事件註冊監聽器的兩種方法

Button是Android程式中最常用到的控制元件之一,主要用來與程式和使用者的互動。可配置的屬性這裡不展開敘述,這裡簡單的在activity_main.xml中加入一個Button:
<Button
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"
android:gravity="center"/>


然後我們就可以在MainActivity中為Button的點選事件註冊一個監聽器。
Button的點選事件監聽器有兩種實現方式,分別是使用匿名類的方式和實現介面的方式來實現,下面分別展示:
1.匿名類方式:
public class MainActivity extends Activity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.textView1);
/**為Button點選事件註冊一個監聽器*/
button.setOnClickListener(new OnClickListener(){
public void onClick(View v){
//新增邏輯
}
});
}
}

2.實現介面類方式:
public class MainActivity extends Activity implements OnClickListener{
private Button saveBtn;
private Button loadBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
saveBtn=(Button)findViewById(R.id.save_data);
loadBtn=(Button)findViewById(R.id.load_data);
saveBtn.setOnClickListener(this);
loadBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {//獲取Button的id
case R.id.save_data:
//新增邏輯
break;
case R.id.load_data:
//新增邏輯
break;
default:
break;
}
}
}

以上兩種方法並沒有明顯的差別,根據自己的喜好選擇,不過使用第二種的話有一些需要注意的地方。初學者會容易把public class MainActivity extends Activity implements OnClickListener中實現介面的語句implements OnClickListener漏掉,就會造成錯誤。另外就是每一個case後面要加上break,這個也是很容易被漏掉的。