我很困惑为什么我无法在循环中打印所有数组值。它只打印数组的最后一个值。
以下代码 - :
package com.example.code_1;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
import android.util.Log;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tt=(TextView)findViewById(R.id.and);
try
{
String abc[]={"1","2","3","4","5","6","7","8","9","10","11","12"};
for(int i=0;i<abc.length;i++)
{
tt.setText(String.valueOf(abc[i]));
}
}
catch(NullPointerException e)
{
}
}
}
我搜索了互联网,我发现使用 StringBuilder 类附加所有值并在循环外显示数组但我认为它非常类似于将所有内容汇总成字符串显示在一个字符串中单变量。我不想要这个解决方案。
请帮帮我,如何打印循环内的所有值。 !!!
先谢谢..
答案 0 :(得分:4)
使用append
代替setText
。
for(int i=0;i<abc.length;i++)
{
tt.append(String.valueOf(abc[i]));
tt.append("\n"); // for new line
}
setText
设置为textview的最新版本。
您也可以使用StringBuilder
并使用append
StringBuilder builder = new StringBUilder();
for(int i=0;i<abc.length;i++)
{
builder.append(String.valueOf(abc[i]));
builder.append("\n");
}
tt.setText(builder.toString()));
http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html
答案 1 :(得分:3)
您需要添加上一个文字
tt.setText(tt.getText().toString()+String.valueOf(abc[i]));
答案 2 :(得分:2)
通过执行setText()
,您将替换TextView
中的文字。要添加文字,您应该使用append()
方法,如下所示:
tt.append(String.valueOf(abc[i]));
现在,如果您希望新文本在新行上,您应该写下这样的内容:
tt.append("\n" + String.valueOf(abc[i]));