0

我需要一些关于如何随机给每个按钮 [i] 值 R.id.buttonj_mg 的想法。(一对一功能...)。我不知道该怎么做,因为 R.id.button1_mg 不是字符串,所以当 j 随机选择时,我不能像 R.id.button+j+_mg 那样做一些事情。

这是现在的情况:

    button[1]=  (Button)findViewById(R.id.button1_mg);
    button[2]=  (Button)findViewById(R.id.button2_mg);
    button[3]=  (Button)findViewById(R.id.button3_mg);
    button[4]=  (Button)findViewById(R.id.button4_mg);
    button[5]=  (Button)findViewById(R.id.button5_mg);
    button[6]=  (Button)findViewById(R.id.button6_mg);
    button[7]=  (Button)findViewById(R.id.button7_mg);
    button[8]=  (Button)findViewById(R.id.button8_mg);
    button[9]=  (Button)findViewById(R.id.button9_mg);
    button[10]=  (Button)findViewById(R.id.button10_mg);
    button[11]=  (Button)findViewById(R.id.button11_mg);
    button[12]=  (Button)findViewById(R.id.button12_mg);
    button[13]=  (Button)findViewById(R.id.button13_mg);
    button[14]=  (Button)findViewById(R.id.button14_mg); 
    button[15]=  (Button)findViewById(R.id.button15_mg);
    button[16]=  (Button)findViewById(R.id.button16_mg);
4

2 回答 2

0

您可以使用集合将整数存储为整数,然后对这些对象使用 Java 集合类 shuffle() 方法。然后,您可以从每个按钮的集合中一一删除它们。

List<Integer> resources = new ArrayList<Integer>();
...
resources.add(R.id.button1);
...
Collections.shuffle(resources);
于 2013-05-13T20:00:33.660 回答
0

一种解决方案是在代码中创建按钮及其 ID,而不是从资源中获取它们,请查看https://stackoverflow.com/a/11615356/987358。然后,您可以按照另一个答案的建议轻松地将它们存储在集合中。

另一个解决方案是 Java 反射 API,它允许使用 id 名称的字符串检索 id 的值。

于 2013-05-13T20:07:40.613 回答