3

我有一个包含整数 0、1、2、3、4 的列表。然后我正在对其进行改组,作为第三步,我想用与 button1 相关的第一个对象、与 button2 相关的第二个对象等来初始化 Buttons。如果我手动执行它,它可以工作,但我想动态解决它。

    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());
    }

提前致谢。任何帮助表示赞赏(朝正确的方向戳我的鼻子)

4

1 回答 1

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);
}
于 2013-04-29T11:12:28.650 回答