从Android

时间:2015-12-03 18:49:58

标签: java android sqlite

我正在开发简单的应用程序以从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));

1 个答案:

答案 0 :(得分:-1)

可能是您的第一行在.xsd(列)中包含空字符串。 尝试增加数据库版本并再次添加行。

或试试这个:

PERSON_COLUMN_NAME

P.S。这可能是在评论中写的,但由于我的声誉不到50,我必须把它写成答案。