アンドロイドSDKを使用してSQLiteデータベースを処理する方法に関するチュートリアルに続きました。私の問題は、 "getUsername()"メソッドを呼び出すとアプリケーションがクラッシュすることです。私は間違って何をしていますか?SQLiteOpenHelperがAndroidアプリケーションをクラッシュする
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;
}
}
を書くたびにエラーをアップロードしてください。 – Lucifer