Java中动态创建的文本视图-NullPointerException

Java中动态创建的文本视图-NullPointerException,java,android,nullpointerexception,textview,Java,Android,Nullpointerexception,Textview,我尝试在Java中添加一些文本视图。我假设当我想使用setText()方法时,我应该更早地将Java的TextView对象与XML的TextView连接起来——我使用setId() 最后,我在使用setId()的行中得到了NullPointerException 我的代码: TextView[] tvQuestion = new TextView[numberOfQuestions]; TextView[] tvAnswer1 = new TextView[numberOfQuestions];

我尝试在Java中添加一些文本视图。我假设当我想使用
setText()
方法时,我应该更早地将Java的TextView对象与XML的TextView连接起来——我使用
setId()

最后,我在使用
setId()
的行中得到了NullPointerException

我的代码:

TextView[] tvQuestion = new TextView[numberOfQuestions];
TextView[] tvAnswer1 = new TextView[numberOfQuestions];
TextView[] tvAnswer2 = new TextView[numberOfQuestions];
TextView[] tvAnswer3 = new TextView[numberOfQuestions];

LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT);

for (int i = 0; i < numberOfQuestions; i++) {
    tvQuestion[i].setId(View.generateViewId()); // NullPointerException!
    tvAnswer1[i].setId(View.generateViewId());
    tvAnswer2[i].setId(View.generateViewId());
    tvAnswer3[i].setId(View.generateViewId());

    tvQuestion[i].setLayoutParams(params);
    tvAnswer1[i].setLayoutParams(params);
    tvAnswer2[i].setLayoutParams(params);
    tvAnswer3[i].setLayoutParams(params);

    tvQuestion[i].setText(question[i]);
    tvAnswer1[i].setText(option1[i]);
    tvAnswer2[i].setText(option2[i]);
    tvAnswer3[i].setText(option3[i]);

    layAll.addView(tvQuestion[i]);
    layAll.addView(tvAnswer1[i]);
    layAll.addView(tvAnswer2[i]);
    layAll.addView(tvAnswer3[i]);
}
TextView[]tvQuestion=newtextview[numberOfQuestions];
TextView[]tAnswer1=新的TextView[numberOfQuestions];
TextView[]tAnswer2=新的TextView[numberOfQuestions];
TextView[]tAnswer3=新的TextView[numberOfQuestions];
LayoutParams params=新的LayoutParams(LayoutParams.WRAP_内容,
LayoutParams.WRAP_内容);
for(int i=0;i
编辑:


解决方案:Philipp Jahoda的帖子。

您刚刚为TextView创建了一个数组只要未初始化,数组中的文本视图就为空

所以你需要打电话

tvQuestion[i] = new TextView(Context);
tvAnswer[i] = new TextView(Context);
// and so on ...

// and then later
tvQuestion[i].setId(View.generateViewId());
// and so on ...
在设置ID和其他内容之前