2010-06-25 133 views
2

有沒有辦法有1的onClick李斯特許多按鈕,在那裏我可以折騰case語句做基礎上被點擊的按鈕是什麼東西。可變的OnClick聽衆的Android

我知道我可以做100名不同的聽衆爲100個按鈕,但我覺得我可以創造一些漂亮的變量做在較少的代碼行。

回答

5
Button btn1, btn2; 
public void onCreate(Bundle b) 
{ 
    // here you do normal things like assigning a 
    // content view to the activity, initiate buttons, etc. 

    // then you assign the same listener to both buttons 
    btn1.setOnClickListener(yourListener); 
    btn2.setOnClickListener(yourListener); 
} 

// declare a OnClickListener that will execute different actions 
// depending on the view that was clicked 
View.OnClickListener yourListener = new View.OnClickListener(){ 
    public void onClick (View v){ 
     if(v == btn1){ 
      // do something 
     } 
     elseif(v == btn1){ 
      // do another thing 
     } 
    } 
}; 
+0

這個工作對我來說太棒了。謝謝。 – shaneburgess 2010-06-26 01:25:59

0
public class MainActivity extends Activity implements View.OnClickListener{ 

btnXXX.setOnClickListener(this); 

public void onClick(View v) { 
    if (v.getId()==R.id.btnXXX){ 
     dialog.show(); 
    } else { 
     handleOtherViews(v); 
    } 
} 
1

如果您正在使用1.6+版本的SDK,您可以使用android:onClick設置視圖的onclick處理程序。在你的活動中,你必須有一個具有以下簽名的方法。該視圖是被點擊的視圖。

void onClick(View v) { 
    switch(v.getId()) { 
     case R.id.button1: 
      //do something fantastic; 
      break; 
    } 
} 
1

或者,你可以指定方法XML調用:

+2

附:但是這在1.5 SDK中不起作用 – davs 2010-06-25 20:14:09