我想将一些数据写入SQLite数据库。 在我的应用程序中,我有一个主要的单例类,代码为:
public class Singleton extends Application {
public static DBHelper dbHelper;
public static SQLiteDatabase db;
@Override
public void onCreate() {
super.onCreate();
dbHelper = new DBHelper(this);
db = dbHelper.getWritableDatabase();
}
}
DBHelper.java:
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context, "myDB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE AlarmListTable ("
+ "id integer primary key autoincrement, "
+ "time text, "
+ "date text, "
+ "comment text "
+ ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
我有一个活动,我有一个方法:
ContentValues cv = new ContentValues();
cv.put("time", entTime.getText().toString());
cv.put("date", entTime.getText().toString());
cv.put("comment", entTime.getText().toString());
Singleton.db.insert("AlarmListTable", null, cv);
但应用程序崩溃了。 请帮帮我。这有什么问题?
logcat的:
FATAL EXCEPTION: main
java.lang.NullPointerException at Singleton.db.insert("AlarmListTable", null, cv);
答案 0 :(得分:1)
主要问题可能是因为您忘记在字符串末尾删除昏迷。在每个昏迷后添加一个空格。
db.execSQL("CREATE TABLE AlarmListTable ("
+ "id integer primary key autoincrement, "
+ "time text, "
+ "date text, "
+ "comment text "
+ ");");
您必须添加有关实际错误的更多详细信息,以确定问题的来源。
答案 1 :(得分:0)
看起来Singleton.db
为空。
您确定onCreate()
中的Singleton
被调用了吗?对于Application
子类,您需要在android:name
文件的AndroidManifest.xml
属性中添加子类的名称。