如何在textView中显示多个值

时间:2015-11-27 13:08:29

标签: java android

我无法让String Builder正常工作,我知道生成的值有效,但只有最后一个被添加到textView中。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);

    Intent newGame = getIntent();
    int temp = newGame.getIntExtra("int_value", 0); // here 0 is the default value

    Random r = new Random();
    int Low = 1;
    int High = 4;
    int Result = r.nextInt(High-Low) +Low;

    int[] numbers = new int [1];
    for(int Generated = 0; Generated < numbers.length; Generated++) {
        numbers[Generated] = (int)(Math.random() +temp);
    }
    int value;
    for (int rolls = 0; rolls < 4 +temp; rolls++) {
        value = (int) (Math.random() * 4 + 1);
        //Test if numbers generated are correct
        // Create the text view
        TextView textView = new TextView(this);
        textView.setTextSize(40);
        StringBuilder builder = new StringBuilder();
            builder.append(value + " ");
            textView.setText(builder.toString());


            // Set the text view as the activity layout
            setContentView(textView);
            //store generated numbers here
            System.out.println(value);
    }
}

在System.out.println(value)中;我可以看到生成的数字,但textView只显示最后一个。

2 个答案:

答案 0 :(得分:2)

尝试编辑如下:

StringBuilder builder = new StringBuilder();

for (int rolls = 0; rolls < 4 +temp; rolls++) {
    value = (int) (Math.random() * 4 + 1);
    //Test if numbers generated are correct
    // Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    builder.append(value + " ");
    textView.setText(builder.toString());

    // Set the text view as the activity layout
    setContentView(textView);
    //store generated numbers here
    System.out.println(value);
}

答案 1 :(得分:0)

所以,你想要做的是使用StringBuilder在循环中构建你的字符串。然后在循环后将StringBuilder的值设置为textView。像这样_:

StringBuilder builder = new StringBuilder();

for (int rolls = 0; rolls < 4 +temp; rolls++) {
    value = (int) (Math.random() * 4 + 1);
    builder.append(value + " ");
    System.out.println(value);
}

TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(builder.toString());

// Set the text view as the activity layout
setContentView(textView);