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

时间:2013-05-30 03:51:21

标签: java android

我有以下代码:

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打印到终端。

4 个答案:

答案 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);

如果您不希望它在循环之外。