繁体   English   中英

如何将多个语句打印到一个TextView

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM