大佬教程收集整理的这篇文章主要介绍了Android SQLite ContentValues未插入,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
通常,最好将包装方法(在您的情况下@H_944_3@addAlarm, editAlarm, deletealarm)分隔在单独的类中。我建议您使用名称创建一个新类,@H_944_3@myApPDAtasource并在该类中添加所有包装方法,以使您的生活更轻松。
该类的代码如下所示:
@H_944_3@ public class studymanagerDatasource { sqliteOpenHelper dbHelper; sqliteDatabase database; public studymanagerDatasource(Context context) { dbHelper = new DatabaseAdapter(context); } public voID addAlarm(Alarm alarm) { // open the database connection open(); ContentValues values = new ContentValues(); values.put(KEY_DESC, alarm.getDesc()); values.put(KEY_REPEAT_DAY, alarm.getRepeatDay()); values.put(KEY_REPEAT_TYPE, alarm.getRepeatType()); values.put(KEY_CALENDAR, Long.toString(alarm.getCalendarInMillis())); values.put(KEY_APP, alarm.getApp()); values.put(KEY_ACTIVE, alarm.getActive()); database.insert(table_name, null, values); // I will suggest to keep the connection to the database open when your app is // running, the recommended time to close the connection is when your app is //going to pause/stop. close(); } public voID open() { database = dbHelper.getWritableDatabase(); Log.i(LOG_TAG, "Database Opened"); } // end method open public voID close() { Log.i(LOG_TAG, "Database Closed"); dbHelper.close(); } // end method close }
我正在尝试将值插入@H_944_3@sqliteAndroid应用程序数据库。我正在编写以下代码:
@H_944_3@public class DataBaseAdapter extends sqliteOpenHelper { private static final int DATABASE_VERSION = 1; // Database Name private static final String DATABASE_NAME = "AlarmSystem"; // Alarm table name private static final String table_NAME = "Alarms"; //AlarmTable @R_197_8620@ns names private static final String KEY_ALARM_ID = "Id"; private static final String KEY_DESC = "Description"; private static final String KEY_REPEAT_DAY = "RepeatDay"; private static final String KEY_REPEAT_TYPE = "REPEAT_TYPE"; private static final String KEY_CALENDAR = "Calendar"; private static final String KEY_APP = "Device"; private static final String KEY_ACTIVE = "Active"; //creaTing database public DataBaseAdapter(Context con) { super(con,DATABASE_NAME,null,DATABASE_VERSION); } //creaTing table @Override public void onCreate(sqliteDatabase db) { String create_tABLE = "create table "+TABLE_NAME+"(" +KEY_ALARM_ID+" INTEGER PRIMary key AUTOINCREMENT,"+KEY_DESC+" TEXT,"+KEY_REPEAT_DAY+ " TEXT," +KEY_REPEAT_TYPE+" Integer,"+KEY_CALENDAR+" TEXT,"+KEY_APP+" TEXT,"+KEY_ACTIVE+" Integer );"; db.execSQL(create_tABLE); } //updating database @Override public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) { // Drop older table if existed db.execSQL("drop table IF EXISTS " + TABLE_Name); // create tables again onCreate(db); } public void addAlarm(Alarm alarm) { sqliteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_DESC,alarm.getDesc()); values.put(KEY_REPEAT_DAY,alarm.getRepeatDay()); values.put(KEY_REPEAT_TYPE,alarm.getRepeatType()); values.put(KEY_CALENDAR,Long.toString(alarm.getCalendarInMillis())); values.put(KEY_APP,alarm.getApp()); values.put(KEY_ACTIVE,alarm.getActive()); db.insert(TABLE_NAME,values); db.close(); }
我不知道是什么问题。所以我发布了Logcat:
@H_944_3@ 03-13 17:09:33.388: D/sqliteDatabaseCpp(1095): Registering sqlite logging func: /data/data/com.example.devicecontrolpanel/databases/AlarmSystem 03-13 17:09:33.408: D/sqliteDatabaseCpp(1095): DB info: open db,path = /data/data/com.example.devicecontrolpanel/databases,key = 9lYvmWqw,flag = 6,cAnnot stat file,errno = 2,message = No such file or directory 03-13 17:09:33.408: D/sqliteDatabaseCpp(1095): DB info: path = /data/data/com.example.devicecontrolpanel/databases,handle: 0x8ccc98,type: w,r/w: (0,1),mode: truncate,disk free size: 777 M 03-13 17:09:33.588: D/sqliteDatabaseCpp(1095): DB info: close db,handle = 0x8ccc98,type = w,r/w = (0,0) 03-13 17:09:33.588: D/sqliteDatabaseCpp(1095): DB info: open db,file size = 4096 03-13 17:09:33.588: D/sqliteDatabaseCpp(1095): DB info: path = /data/data/com.example.devicecontrolpanel/databases,handle: 0x8f3100,handle = 0x8f3100,0) 03-13 17:09:33.598: D/AndroidRuntime(1095): ShutTing down VM 03-13 17:09:33.598: W/dalvikvm(1095): threadid=1: thread exiTing with uncaught exception (group=0x40ae0228) 03-13 17:09:33.618: E/AndroidRuntime(1095): FATAL EXCEPTION: main 03-13 17:09:33.618: E/AndroidRuntime(1095): java.lang.RuntimeException: Unable to start activity ComponenTinfo{Com.example.devicecontrolpanel/com.example.devicecontrolpanel.Main}: java.lang.IllegalStateException: database /data/data/com.example.devicecontrolpanel/databases/AlarmSystem (conn# 0) already closed 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2205) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2240) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.app.ActivityThread.access$600(ActivityThread.java:139) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.app.ActivityThread$H.handlemessage(ActivityThread.java:1262) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.os.Handler.dispatchmessage(Handler.java:99) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.os.Looper.loop(Looper.java:156) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.app.ActivityThread.main(ActivityThread.java:4987) 03-13 17:09:33.618: E/AndroidRuntime(1095): at java.lang.reflect.Method.invokeNative(Native Method) 03-13 17:09:33.618: E/AndroidRuntime(1095): at java.lang.reflect.Method.invoke(Method.java:511) 03-13 17:09:33.618: E/AndroidRuntime(1095): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 03-13 17:09:33.618: E/AndroidRuntime(1095): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 03-13 17:09:33.618: E/AndroidRuntime(1095): at dalvik.system.NativeStart.main(Native Method) 03-13 17:09:33.618: E/AndroidRuntime(1095): Caused by: java.lang.IllegalStateException: database /data/data/com.example.devicecontrolpanel/databases/AlarmSystem (conn# 0) already closed 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.database.sqlite.sqliteDatabase.verifyDbIsOpen(sqliteDatabase.java:2194) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.database.sqlite.sqliteDatabase.lock(sqliteDatabase.java:448) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.database.sqlite.sqliteDatabase.lock(sqliteDatabase.java:435) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.database.sqlite.sqliteQuery.fillWindow(sqliteQuery.java:79) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.database.sqlite.sqlitecursor.fillWindow(sqlitecursor.java:176) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.database.sqlite.sqlitecursor.getCount(sqlitecursor.java:168) 03-13 17:09:33.618: E/AndroidRuntime(1095): at com.example.devicecontrolpanel.DataBaseAdapter.getAlarmsCount(DataBaseAdapter.java:190) 03-13 17:09:33.618: E/AndroidRuntime(1095): at com.example.devicecontrolpanel.DataBaseAdapter.getAllAlarmList(DataBaseAdapter.java:117) 03-13 17:09:33.618: E/AndroidRuntime(1095): at com.example.devicecontrolpanel.Main.onCreate(Main.java:19) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.app.Activity.performCreate(Activity.java:4538) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.app.instrumentation.callActivityOnCreate(instrumentation.java:1071) 03-13 17:09:33.618: E/AndroidRuntime(1095): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161) 03-13 17:09:33.618: E/AndroidRuntime(1095): ... 11 more 03-13 17:16:48.144: D/sqliteDatabaseCpp(2080): Registering sqlite logging func: /data/data/com.example.devicecontrolpanel/databases/AlarmSystem 03-13 17:16:48.144: D/sqliteDatabaseCpp(2080): DB info: open db,message = No such file or directory 03-13 17:16:48.164: D/sqliteDatabaseCpp(2080): DB info: path = /data/data/com.example.devicecontrolpanel/databases,handle: 0x86b220,disk free size: 777 M 03-13 17:16:48.384: D/sqliteDatabaseCpp(2080): DB info: close db,handle = 0x86b220,0) 03-13 17:16:48.384: D/sqliteDatabaseCpp(2080): DB info: open db,file size = 5120 03-13 17:16:48.384: D/sqliteDatabaseCpp(2080): DB info: path = /data/data/com.example.devicecontrolpanel/databases,handle: 0x897800,handle = 0x897800,0) 03-13 17:16:48.394: D/AndroidRuntime(2080): ShutTing down VM 03-13 17:16:48.414: W/dalvikvm(2080): threadid=1: thread exiTing with uncaught exception (group=0x40ae0228) 03-13 17:16:48.424: E/AndroidRuntime(2080): FATAL EXCEPTION: main 03-13 17:16:48.424: E/AndroidRuntime(2080): java.lang.RuntimeException: Unable to start activity ComponenTinfo{Com.example.devicecontrolpanel/com.example.devicecontrolpanel.Main}: java.lang.IllegalStateException: database /data/data/com.example.devicecontrolpanel/databases/AlarmSystem (conn# 0) already closed 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2205) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2240) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.app.ActivityThread.access$600(ActivityThread.java:139) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.app.ActivityThread$H.handlemessage(ActivityThread.java:1262) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.os.Handler.dispatchmessage(Handler.java:99) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.os.Looper.loop(Looper.java:156) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.app.ActivityThread.main(ActivityThread.java:4987) 03-13 17:16:48.424: E/AndroidRuntime(2080): at java.lang.reflect.Method.invokeNative(Native Method) 03-13 17:16:48.424: E/AndroidRuntime(2080): at java.lang.reflect.Method.invoke(Method.java:511) 03-13 17:16:48.424: E/AndroidRuntime(2080): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 03-13 17:16:48.424: E/AndroidRuntime(2080): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 03-13 17:16:48.424: E/AndroidRuntime(2080): at dalvik.system.NativeStart.main(Native Method) 03-13 17:16:48.424: E/AndroidRuntime(2080): Caused by: java.lang.IllegalStateException: database /data/data/com.example.devicecontrolpanel/databases/AlarmSystem (conn# 0) already closed 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.database.sqlite.sqliteDatabase.verifyDbIsOpen(sqliteDatabase.java:2194) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.database.sqlite.sqliteDatabase.lock(sqliteDatabase.java:448) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.database.sqlite.sqliteDatabase.lock(sqliteDatabase.java:435) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.database.sqlite.sqliteQuery.fillWindow(sqliteQuery.java:79) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.database.sqlite.sqlitecursor.fillWindow(sqlitecursor.java:176) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.database.sqlite.sqlitecursor.getCount(sqlitecursor.java:168) 03-13 17:16:48.424: E/AndroidRuntime(2080): at com.example.devicecontrolpanel.DataBaseAdapter.getAlarmsCount(DataBaseAdapter.java:196) 03-13 17:16:48.424: E/AndroidRuntime(2080): at com.example.devicecontrolpanel.DataBaseAdapter.getAllAlarmList(DataBaseAdapter.java:123) 03-13 17:16:48.424: E/AndroidRuntime(2080): at com.example.devicecontrolpanel.Main.onCreate(Main.java:19) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.app.Activity.performCreate(Activity.java:4538) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.app.instrumentation.callActivityOnCreate(instrumentation.java:1071) 03-13 17:16:48.424: E/AndroidRuntime(2080): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161) 03-13 17:16:48.424: E/AndroidRuntime(2080): ... 11 more
以上是大佬教程为你收集整理的Android SQLite ContentValues未插入全部内容,希望文章能够帮你解决Android SQLite ContentValues未插入所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。