我在尝试将字符分配到文本视图数组时遇到了这个问题
计数器是我通过读取文本文件中的字符数得到的计数
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]);
}
在此之后,当我尝试运行应用程序时,应用程序只是强行关闭..我不知道如何调试它
我的应用程序需要将1个字符设置为1个文本视图
答案 0 :(得分:5)
您尚未正确初始化TextView。这就是为什么你得到nullpointerexception。您必须按如下方式初始化TextView:
tv[i] = new TextView(this);
这是您的Activity实例。
你的
有问题setContentView(tv[i]);
如果您使用此代码,则在屏幕中您将只看到最后一个文本视图。
要查看所有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);
希望它会对你有所帮助。
答案 1 :(得分:1)
TextView [] tv = new TextView [counter]; 在这里创建填充空引用的数组。当然它会在这里崩溃tv [i] .setLayoutParams()与空指针异常