0

わかりましたので、整数を持つ配列を作成します。配列には、最小値と最大値から 5 つの数値が表示されます。textview または edittext に 5 つの数字すべてを表示するにはどうすればよいですか? 私は試した:

nameofile.setText(al.get(x).toString()); 

1つしか表示されませんか?

ArrayList<Integer> al = new ArrayList<Integer>();
for (int i = minint; i <= maxint; i++)
    al.add(i);

Random ran = new Random();

for (int i = 0; i < 5; i++) {
    int x = al.remove(ran.nextInt(al.size()));
    String myString = TextUtils.join(", ", al);
    lottonumbers.setText(myString);
4

4 に答える 4

2
ArrayList<Integer> al = new ArrayList<Integer>();
    al.add(0);
    al.add(1);
    al.add(5);
    al.add(4);
    al.add(3);
    java.util.Collections.sort(al);//for sorting Integer values

    String listString = "";

    for (int s : al)
    {
        listString += s + " ";
    }
    nameofile.setText(listString);
于 2012-11-16T03:02:49.083 に答える
1

現在、1つの要素(インデックスにある要素)のみを印刷していますx。それらをすべて順番に印刷したい場合は、を使用してそれらを結合できますTextUtils.join()

更新:あなたの編集を見た後、私はあなたがやろうとしていることについて行くためのより良い方法があると思います。一度に1つずつ値をプルしてリストを更新する代わりに、値をシャッフルしてから上記の方法を使用してみませんか?

アップデート2:さて、私はついにあなたの問題を理解したと思います。それなら、単純な変更です。

ArrayList<Integer> al = new ArrayList<Integer>();
for (int i = minint; i <= maxint; i++)
    al.add(i);

Random ran = new Random();

StringBuilder text = new StringBuilder(); // Create a builder
for (int i = 0; i < 5; i++) {
    int x = al.remove(ran.nextInt(al.size()));
    if (i > 0)
        text.append(", "); // Add a comma if we're not at the start
    text.append(x);
}
lottonumbers.setText(text);
于 2012-11-16T02:50:10.007 に答える
0

al.get(x).toString() は、インデックス「x」の値のみを取得します。すべての値を表示する場合は、配列のすべての値を 1 つの文字列に結合し、その文字列に対して setText を使用する必要があります。

于 2012-11-16T02:41:56.170 に答える
0

TextView に配列の 1 つの数値のみを表示しています。他の結果を表示するには、数値を連結する必要があります。

for(Integer integer : al) {
  nameofile.setText(nameofile.getText() + " " + al.get(x).toString());
}

次に、すべての数値を1つの文字列で表示できると思います。

于 2012-11-16T03:02:17.277 に答える