我正在尝试从数据库中的列中检索字符串数据并插入到android中的字符串数组中。我使用以下代码来检索数据 - (helper.java)
public String[] personslist() {
// TODO Auto-generated method stub
int i=0;
Cursor c=myDataBase.rawQuery("select PersonName from Persons;",null);
String[] values = {};
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
values[i] = c.getString(c.getColumnIndex("PersonName"));
i++;
}
return values;
}
我在“adapter.java”类中使用了以下代码来返回personslist()返回的数据。
public String[] plist() {
// TODO Auto-generated method stub
String[] persons = mDbHelper.personslist(); //this is line no. 131 in adapter class
return persons;
}
当我运行应用程序时,它正在崩溃并显示以下错误
09-08 08:23:19.715: E/AndroidRuntime(29373): Caused by: java.lang.NullPointerException
09-08 08:23:19.715: E/AndroidRuntime(29373): at com.example.fromstart.adapter.plist(adapter.java:131)
查询,当在sqlitebrowser上运行时,它返回四行四个人的名字。但是,在应用程序上运行时,它返回NullPointerException。你能告诉我,我可能出错了吗?
提前致谢。
答案 0 :(得分:1)
mDbHelper为null。那是什么引发你的例外。确保它已初始化。
答案 1 :(得分:0)
检查初始化mDbHelper的位置。你正在做mDbHelpe.personslist()。在这里你的mDbHelper可能是空的,因此无效的异常。
答案 2 :(得分:0)
你做了类似的事情来初始化
吗?Context context;
SQLiteDatabase db = null ;
CallDBHelper dbHelp = null;
public Constructor(Context context) {
this.context = context;
dbHelp = new CallDBHelper(context);
db = dbHelp.getWritableDatabase();
}
Cursor c = db.query(...