0

R.id.buttonj_mg の値の各ボタン [i] をランダムに与える方法についてのアイデアが必要です。(1対1の機能...)。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

1 つの解決策は、ボタンとその ID をリソースから取得するのではなく、コードで作成することです。https://stackoverflow.com/a/11615356/987358を参照してください。次に、別の回答が示唆するように、それらをコレクションに簡単に保存できます。

もう 1 つの解決策は、ID 名の文字列を使用して ID の値を取得できる Java リフレクション API です。

于 2013-05-13T20:07:40.613 に答える
0

コレクションを使用して int を整数として格納し、それらのオブジェクトに対して Java Collection クラスの shuffle() メソッドを使用できます。次に、各ボタンのコレクションからそれらを 1 つずつ削除できます。

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