0

好的,所以我创建了一个包含整数的数组。该数组显示最小值和最大值中的五个数字。如何在 textview 或 edittext 中显示所有五个数字?我试过了:

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

但它只显示一个?

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

您目前只打印出一个元素(位于 index 的那个x)。如果您想按顺序打印它们,只需使用TextUtils.join().

更新:看到您的编辑后,我认为有更好的方法来处理您正在尝试做的事情。与其尝试一次提取一个值并更新列表,不如直接打乱它们,然后使用上述方法?

更新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”处的值。如果要显示所有值,则需要将数组中的所有值组合成一个字符串,然后在该字符串上使用 setText。

于 2012-11-16T02:41:56.170 回答
0

您只在 TextView 中显示一个数组,您必须连接这些数字才能看到其他结果,例如:

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

然后我认为您可以在一个字符串中显示所有数字。

于 2012-11-16T03:02:17.277 回答