我有以下代码:
for(int i = 1; i <= doubleLength; i++) {
doubleRate = (doubleBalance * (doubleRate/100))/12;
doubleBalance = doubleBalance + doubleRate;
doublePayment = (doubleBalance/doubleCount);
TextView results = (TextView) findViewById(R.id.showResult);
results.setText(doublePayment+"");
doubleCount = doubleCount - 1;
doubleBalance -= doublePayment;
}
我要做的是将“doublePayment”值的每个值打印到屏幕上的TextView UI对象。但是,当for循环结束时,它只打印出一个值,而不是几个。
我正在从C ++移植它,所以我习惯于使用cout
打印到终端。
答案 0 :(得分:1)
问题在于:
results.setText(doublePayment+"");
您正在设置文本值,而不是附加整个String。更好的方法是使用StringBuilder
:
StringBuilder sb = new StringBuilder();
for(int i = 1; i <= doubleLength; i++) {
doubleRate = (doubleBalance * (doubleRate/100))/12;
doubleBalance = doubleBalance + doubleRate;
doublePayment = (doubleBalance/doubleCount);
sb.append(doublePayment);
sb.append(" ");
doubleCount = doubleCount - 1;
doubleBalance -= doublePayment;
}
TextView results = (TextView) findViewById(R.id.showResult);
results.setText(sb.toString());
答案 1 :(得分:0)
正如Raghunandan建议您不需要在循环内初始化textview。移动
TextView results = (TextView) findViewById(R.id.showResult);
在循环之外。
而不是setText使用append
results.append(doublePayment+"\n");
答案 2 :(得分:0)
试试这个
results.setText(results.getText().toString() + ", " +doublePayment);
为了获得更好的性能,请使用StringBuilder
。
String res = new StringBuilder(results.getText().toString())
.append(", ")
.append(doublePayment)
.toString();
results.setText(res);
答案 3 :(得分:0)
您需要先构建文本(在StringBuilder或其他任何内容中),然后在循环外部执行setText。
或者,您可以
results.setText(results.getText().toString() + System.getProperty("line.separator") + doublePayment);
如果您不希望它在循环之外。