将文本数组设置为textview数组

ben*_*ben 2 android

我试图将一个字符分配到一个文本视图数组时遇到了这个问题

counter是我通过读取文本文件中的字符数得到的计数

            TextView[] tv = new TextView[counter];

        for (int i = 0; i < counter; i++)
        {
            tv[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
            tv[i].setText(singleText[i]); 
            setContentView(tv[i]); 
        }
Run Code Online (Sandbox Code Playgroud)

在此之后,当我尝试运行应用程序时,应用程序只是强制关闭..我不知道如何调试它

我的应用程序需要将1个字符设置为1个文本视图

gyp*_*der 5

您尚未正确初始化TextView.这就是为什么你得到nullpointerexception.您必须按如下方式初始化TextView:

tv[i] = new TextView(this);
Run Code Online (Sandbox Code Playgroud)

这是您的Activity实例.

而你的问题则存在问题

setContentView(tv[i]);
Run Code Online (Sandbox Code Playgroud)

如果您使用此代码,则在屏幕中您将只看到最后一个文本视图.

要查看所有TextView,您必须在LinearLayout等容器中添加所有TextView.然后,您将容器设置为内容View.

这是您可以使用的代码:

LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,              
        LayoutParams.WRAP_CONTENT));
TextView[] tv = new TextView[counter];

for (int i = 0; i < counter; i++)
{
        tv[i] = new TextView(this);
        tv[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,              
            LayoutParams.WRAP_CONTENT)); 
        tv[i].setText(singleText[i]); 
        linearLayout.addView(tv[i]); 
}
setContentView(linearLayout);
Run Code Online (Sandbox Code Playgroud)

希望它会对你有所帮助.