0

我读过关于集合来随机化对象的顺序。有了这个,我想尝试在我的 android 应用程序中随机化我的按钮。

这里有一段代码:

 Button[] bObject = new Button[6];
 private void getCorrectObject() {
    // TODO getCorrectObject

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

    bObject[objects]; // I'm having trouble implementing the shuffle logic here.


}

因此,任何有帮助的回应都会受到真正的赞赏。谢谢。

4

4 回答 4

0

第一的

Button[] bObject=new Button[6];

第二:

for(int i=0;i<objects.size;i++)
   bObject[i]=objects.get(i);

或者:

for(Object obj : objects)
 bObject[i]=obj;
于 2013-04-29T10:29:34.817 回答
0

我想这就是你要找的。bObject洗牌数组中的元素。

Collections.shuffle(Arrays.asList(bObject));
于 2013-04-29T10:33:39.323 回答
0

手动解决它,然后尝试动态解决它。有一个好主意,你可以用第二个数组列表来做到这一点。

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

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

    for (int i = 0; i < objects.size(); i++) {
        buttons.get(i).setText(objects.get(i).toString());
    }

这对你有帮助吗?

编辑: 是的,让我们在聊天中解决这个问题。我也很好奇这是怎么做到的!

于 2013-04-29T11:19:37.443 回答
0

我遇到了同样的问题(随机播放按钮),我想出了一个简单的解决方案,我只使用了一组整数的按钮 id 和简单的随机播放。在我的情况下就足够了。这很简单,你得到相同的结果。

Integer[] a =  { 0x7f090049, 0x7f09004b, 0x7f09004c, 0x7f090048};
Collections.shuffle(Arrays.asList(a));

button1 = (Button)findViewById(a[0]);
button2 = (Button)findViewById(a[1]);
button3 = (Button)findViewById(a[2]);
button4 = (Button)findViewById(a[3]);

我希望这将有所帮助。问候 !!(抱歉我的英语不好)

于 2014-12-08T17:58:13.310 回答