首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java - NullPointerException中动态创建NullPointerException

在Java - NullPointerException中动态创建NullPointerException
EN

Stack Overflow用户
提问于 2013-09-03 20:28:03
回答 1查看 268关注 0票数 1

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

最后,我将NullPointerException放在使用setId()的行中。

我的代码:

代码语言:javascript
复制
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]);
}

编辑:

解决方案: Philipp Jahoda的职位。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-03 20:29:26

您刚刚为TextViews创建了一个数组。--只要数组中的TextViews没有初始化,它们就为空

所以你需要打电话

代码语言:javascript
复制
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和其他东西之前。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18600915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档