设置textview数组的上下文

时间:2017-03-29 15:47:08

标签: java android arrays android-activity android-context

如何将上下文应用于textview数组?

for (int cell = 0; cell < 3; cell++){
    TextView textView = new TextView(context);
    textView.setText("-");
}

显然,这个错误会被抛出:

java.lang.NullPointerException:尝试在空对象引用上调用虚方法'void android.widget.TextView.setText(java.lang.CharSequence)'

如果这不是textview 数组,则在调用构造函数时将活动 context 添加为参数会使对象不为null,解决我的问题:

context = getActivity().getApplicationContext()

其中,{{1}}

如何为textview数组设置上下文参数?我想要的是每个textview的动态变量名称,所以我可以分别调用各个textview。

2 个答案:

答案 0 :(得分:2)

您应该在调用方法之前创建对象。 试试这个:

TextView[] textView = new TextView[3];

for (int cell = 0; cell < 3; cell++) {
    textView[cell] = new TextView(context);
    textView[cell].setText("-");
}

答案 1 :(得分:0)

我希望下面的代码可以帮助您解决有关数组视图的上下文问题。首先,您将只创建数组,但是在使用它之前,您必须使用new关键字创建对象。

LinearLayout rootview = (LinearLayout) findViewById(R.id.rootview);

ArrayList<String> words= new ArrayList<>();     

words.add("One"); words.add("two"); words.add("three"); words.add("four"); words.add("five"); words.add("six"); words.add("seven"); words.add("eight"); words.add("nine"); words.add("ten");

    int index=0;
    while(index<words.size()){

        TextView [] textViews = new TextView[words.size()];
        textViews[index] = new TextView(this);

        textViews[index].setText(words.get(index));
        rootview.addView(textViews[index]);
        index++;
    }