[英]What's the effect of implementing the OnClickListener with an Activity?
我不明白為什么我必須實現OnClickListener才能使用OnClick方法。 假設此代碼:
public class KlickitestActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public void onClick(View v) {
// code what happens when a click is made
}
在類OnClickListener中,我僅使用方法onClick(View v)-此方法已被覆蓋。 為什么不能不實現OnClickListener而僅定義onClick方法?
您可以。 您可以使用匿名內部類來做到這一點:
Button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//Do stuff
}});
Button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//Do stuff
}});
但是,實現OnClickListener可以更輕松地處理事件,並提高代碼的可讀性。 即,您可以使用一個Listener方法,並通過一個switch語句傳遞一個View
以處理多個按鈕/偵聽器,類似於:
public void onClick(View view){
switch(view.getId()){
case R.id.Button1:
//Stuff for button 1
break;
case R.id.Button2:
//Stuff for button 2
break;
break;
case R.id.Button3:
//Stuff for button 3
break;
}
只是為了擴展Mob的答案以及Scott的評論和鏈接...
Activity
主要是用於UI的框架,因此沒有與用戶進行交互的預定義方式。 作為設計師/開發人員,我們選擇我們想要的,其UI組件Activity
基礎上的目的,包含Activity
。
UI組件(例如Buttons
, CheckBoxes
, ListViews
等)具有非常不同的用途,而Activity
並不是其基本形式,它知道這些UI元素會響應哪些事件(單擊,長按,滑動等)。僅僅是因為沒有預定義的UI元素集可以始終承載Activity
。 因此,我們有責任根據我們如何設計UI來實現需要使用的事件處理程序(偵聽器)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.