我有一个带有整数0,1,2,3,4的列表。然后我将它洗牌,作为第三步,我想初始化按钮,第一个对象与button1相关,第二个对象与button2等。 如果我手动完成它会起作用,但我想动态地解决它。
List<Integer> objects = new ArrayList<Integer>();
objects.add(0);
objects.add(1);
objects.add(2);
objects.add(3);
objects.add(4);
// Shuffle the collection
Collections.shuffle(objects);
//this is not working here, but it should reflect what i am trying to achieve here
// -->
for (int i = 0; i<objects.size(); i++) {
Button button**i** = (Button)findViewById(R.id.button**i**);
button**i**.setText(objects.get(i).toString());
}
提前致谢。任何帮助(赞美我的鼻子朝向正确的方向)
答案 0 :(得分:4)
您可以通过随机播放按钮列表来解决此问题。当您使用int进行迭代时,它可以作为混洗列表的索引。
像这样:
List<Button> buttons = new ArrayList<Button>();
buttons.add((Button)findViewById(R.id.button0));
buttons.add((Button)findViewById(R.id.button1));
buttons.add((Button)findViewById(R.id.button2));
buttons.add((Button)findViewById(R.id.button3));
buttons.add((Button)findViewById(R.id.button4));
Collections.shuffle(buttons);
for (int i = 0, s = 4; i < s; i++) {
buttons.get(i).setText("" + i);
}