一組標籤,並把它們放入數組:
Button[] buttons = {btn1, btn2, btn3, btn4};
然後定義一個clickListener所有按鈕
View.OnClickListener btnListener = View.OnClickListener() {
public void onClick(View v) {
swap((int) v.getTag());
}
};
然後將其分配給按鈕:
btn1.setOnClickListener(btnListener);
btn2.setOnClickListener(btnListener);
btn3.setOnClickListener(btnListener);
btn4.setOnClickListener(btnListener);
現在對於交換功能:
void swap(int butNum){
Random ran = new Random();
int randomNum = ran.nextInt(buttons.length - 1) + 1;
if(randomNum == butNum) randomNum += 1;
if(randomNum > buttons.length) randomNum = 1;
Button firstBut = getButtonByTagNum(butNum);
Button secondBut = getButtonByTagNum(randomNum);
String s1 = firstBut.getText();
firstBut.setText(secondButton.getText());
secondButton.setText(s1);
firstButton.setTag(randomNumber);
secondButton.setTag(butNum);
}
Button getButtonByTagNum(int tagNum){
for(int i = 0; i < buttons.length; i++){
if(((int) buttons[i].getTag()) == tagNum - 1){
return buttons[i];
}
}
}
它可能需要一點點的潤色和調試。但你明白了。