畢業(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的方式算是如出一轍了。