我試圖在屏幕上隨機佈置10個編號爲1-10的圖像按鈕。 我使用數組列表和Collections.shuffle命令來洗牌背景可繪製。 但我似乎無法將按鈕偵聽器綁定到這些隨機圖像。使用與洗牌匹配的按鈕洗牌圖像
// assigned arrays here
Button[] buttons = new Button[10];
Button[] buttonimages = new Button[10];
List<Button> list;
// Global Variables
int[] buttonarray = {R.drawable.button1,R.drawable.button2,R.drawable.button3,R.drawable.button4,R.drawable.but ton5,R.drawable.button6,R.drawable.button7,R.drawable.button8,R.drawable.button9,R.drawable .button10};
int idarray[] = {R.id.number1,R.id.number2,R.id.number3,R.id.number4,R.id.number5,R.id.number6,R.id.number7,R.id.number8,R.id.number9,R.id.number10};
//然後我添加到ArrayList和洗牌 公共無效randomnumbers2(){
for (int z=0;z<10;z++) {
buttons[z] = (Button)findViewById(idarray[z]);
}
for (int k=0;k<10;k++) {
buttonimages[k] = (Button)findViewById(buttonarray[k]);
}
list = new ArrayList<Button>(10);
for(int i = 0; i < 10; i++) list.add(buttons[i]);
Collections.shuffle(list);
for (int z=0;z<10;z++) {
buttons[z] = (Button)findViewById(idarray[z]);
}
for (int j=0;j<10;j++){
Button b1 = (Button) findViewById(idarray[j]);
((Button) list.set(j, buttons[j])).setBackgroundResource(buttonarray[j]);
}
}
但我的按鈕被這樣定義: 設置按鈕 button1的=(按鈕)findViewById(R .id.number1); button2 =(Button)findViewById(R.id.number2); button3 =(Button)findViewById(R.id.number3); button4 =(Button)findViewById(R.id.number4); button5 =(Button)findViewById(R.id.number5);按鈕6 =(按鈕)findViewById(R.id.number6); button7 =(Button)findViewById(R.id.number7); button8 =(Button)findViewById(R.id.number8);按鈕9 =(按鈕)findViewById(R.id.number9); button10 =(Button)findViewById(R.id.number10);
問題是,當我點擊第一個按鈕時, 。它有一個5號圖像,在第一個位置,但它仍然與按鈕#1相關聯。基本上我有2行5個數字混合起來。我希望按鈕單擊以響應按鈕5,而不是按鈕1。
請完成描述您的問題。 – PH7
對不起,你不知道那裏發生了什麼。完成描述: – huskyd97
它有一個5號圖像,在第一個位置,但它仍然與按鈕#1相關聯。基本上我有2行5個數字混合起來。我希望按鈕單擊以響應按鈕5,而不是按鈕1。希望是有道理的。 thx – huskyd97