我遵循了有关如何使用 android SDK 处理 SQLite 数据库的教程。我的问题是当我调用方法“getUsername()”时应用程序崩溃。我究竟做错了什么?
package racenet.racenet;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class Preferences extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 2;
private static final String DATABASE_NAME = "racenet.racenet.db";
Preferences(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE settings(key TEXT, value TEXT)");
values = new ContentValues();
values.put("user_name", "");
getWritableDatabase().insert("settings", null, values);
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
public String getUsername() {
Cursor c = getReadableDatabase().query("settings", new String[]{"value"},
"key = 'user_name'", null, null, null, null);
c.moveToFirst();
String username = c.getString(0);
c.close();
return username;
}
}