我无法让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只显示最后一个。
答案 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);