[英]How to combine multiple print statements without overriding the previous print statement
[英]How to Print Multiple Statements to One TextView
我有以下代码:
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
打印到终端。
问题在这里:
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());
正如Raghunandan建议的那样,您无需在循环内初始化textview。 移动
TextView results = (TextView) findViewById(R.id.showResult);
在循环之外。
而不是使用setText附加setText
results.append(doublePayment+"\n");
尝试这个
results.setText(results.getText().toString() + ", " +doublePayment);
为了获得更好的性能,请使用StringBuilder
。
String res = new StringBuilder(results.getText().toString())
.append(", ")
.append(doublePayment)
.toString();
results.setText(res);
您需要先构建文本(在StringBuilder或其他工具中),然后在循环外部执行setText。
或者,您可以
results.setText(results.getText().toString() + System.getProperty("line.separator") + doublePayment);
如果您不希望它超出循环范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.