我正在开发简单的应用程序以从SQLite数据库中检索字符串并将其显示在我的主要活动的TextView
中。为此,我在类中创建了处理SQLite数据库的方法,然后在主要活动中调用了方法,但它的作用只是给NullPointerException
。
我的SQLite数据库处理程序类中的方法。
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(
"CREATE TABLE " + PERSON_TABLE_NAME +
"(" + PERSON_COLUMN_ID + " INTEGER PRIMARY KEY, " +
PERSON_COLUMN_NAME + " TEXT, " +
PERSON_COLUMN_GENDER + " TEXT, " +
PERSON_COLUMN_AGE + " INTEGER)"
);
}......//////////// Some Code...........
public String getAddress(int id) {
// TODO Auto-generated method stub
SQLiteDatabase db = this.getReadableDatabase();
try {
Cursor cursor = db.rawQuery("SELECT * FROM " + PERSON_TABLE_NAME + " WHERE " +
PERSON_COLUMN_ID + "=?", new String[]{Integer.toString(id)});
if (cursor != null) {
cursor.moveToFirst();
return cursor.getString (cursor.getColumnIndex (PERSON_COLUMN_NAME));
}
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
我的主要活动我称之为方法。
button = (Button) findViewById(R.id.addNew);
button.setText(dbHelper.getAddress(8));
答案 0 :(得分:-1)
可能是您的第一行在.xsd
(列)中包含空字符串。
尝试增加数据库版本并再次添加行。
或试试这个:
PERSON_COLUMN_NAME
P.S。这可能是在评论中写的,但由于我的声誉不到50,我必须把它写成答案。