在android中,我可以爲不同的按鈕使用相同的OnClickListener嗎?如果是的話,我怎樣才能得到點擊產生的按鈕?我目前有4個按鈕,每個按鈕都有自己的OnClickListener。除了獲取被點擊的按鈕的文本之外,每個OnClickListener都做同樣的事情。我想創建一個OnClickListener,但我無法弄清楚如何確定哪個按鈕被點擊。謝謝你可以爲不同的按鈕使用相同的OnClickListener嗎?
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
mTts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int arg0) {
// TODO Auto-generated method stub
}
});
setContentView(R.layout.home);
Button button1 = (Button)findViewById(R.id.button1);
Button button2 = (Button)findViewById(R.id.button2);
Button button3 = (Button)findViewById(R.id.button3);
Button button4 = (Button)findViewById(R.id.button4);
//Load First Word
button1.setOnClickListener(button1ClickListener);
button2.setOnClickListener(button2ClickListener);
button3.setOnClickListener(button3ClickListener);
button4.setOnClickListener(button4ClickListener);
}
代碼從KARTHIK與不同的部分聽衆大膽
private OnClickListener button1ClickListener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
**Button button = (Button)findViewById(R.id.button1);**
handleButtonClick(button);
}
};
private OnClickListener button2ClickListener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
**Button button = (Button)findViewById(R.id.button2);**
handleButtonClick(button);
}
};
private OnClickListener button3ClickListener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
**Button button = (Button)findViewById(R.id.button3);**
handleButtonClick(button);
}
};
private OnClickListener button4ClickListener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
**Button button = (Button)findViewById(R.id.button4);**
handleButtonClick(button);
}
};
代碼handleButtonclick
private void handleButtonClick(Button button) {
if(button.getText().equals(currentWord)){
currentScore += availableScore;
TextView score = (TextView)findViewById(R.id.textViewScore);
score.setText(String.valueOf(score));
currentIndex++;
availableScore = 4;
InitializeGame();
}
else{
availableScore--;
button.setEnabled(false);
}
}
隨着建議我修改我的代碼如下:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
mTts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int arg0) {
// TODO Auto-generated method stub
}
});
setContentView(R.layout.home);
Button button1 = (Button)findViewById(R.id.button1);
Button button2 = (Button)findViewById(R.id.button2);
Button button3 = (Button)findViewById(R.id.button3);
Button button4 = (Button)findViewById(R.id.button4);
//Load First Word
button1.setOnClickListener(buttonClickListener);
button2.setOnClickListener(buttonClickListener);
button3.setOnClickListener(buttonClickListener);
button4.setOnClickListener(buttonClickListener);
}
OnClickListenerCode
private OnClickListener buttonClickListener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
handleButtonClick((Button)arg0);
}
};
不錯,我沒有意識到,視圖實際上是它自己的按鈕。謝謝。我不得不稍微修改你的代碼,但是我能夠使它工作。 – atbebtg 2011-05-26 03:25:23
不錯@atbebtg開始 – Karthik 2011-05-26 03:33:38