-2
ArrayList<String> al = new ArrayList<String>();
    Cursor c = database.query("remedies", new String[] { "remedy" },
            "d_id=?", new String[] { "" + index }, null, null, null);
    while (c.moveToNext()) {
        al.add(c.getString(0));
    }
    c.close();

    TextView[] tv = new TextView[al.size()];
    for (int i = 0; i < al.size(); i++) {
        tv[i].setText(al.get(i));
    }

私のlogcat:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ayurvedicapp/com.example.ayurvedichomecure.Remedies}:
java.lang.NullPointerException

Exception at: tv[i].setText(al.get(i));

解決策を教えてください

4

4 に答える 4

3

tv[i].setText(al.get(i));これにより例外が発生します。

TextView が null であるため、

TextView の配列を宣言したばかりですが、実際には textview をインスタンス化していません。

これを試して

TextView[] tv = new TextView[al.size()];
    for (int i = 0; i < al.size(); i++) {
       tv[i]=new TextView(context);
        tv[i].setText(al.get(i));
    }
于 2013-04-03T11:18:42.780 に答える
2
for (int i = 0; i < al.size(); i++) {
    tv[i] = new TextView(context); // Provide a proper context or if you plan to use findViewById
    tv[i].setText(al.get(i));
}

TextView の配列を宣言したばかりですが、その中の各要素を初期化していません。

于 2013-04-03T11:19:41.347 に答える