大佬教程收集整理的这篇文章主要介绍了Android SQLite ContentValues未插入,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
通常,最好将包装方法(在您的情况下addAlarm, editAlarm,
deletealarm
)分隔在单独的类中。我建议您使用名称创建一个新类,@H_35_3@myApPDAtasource并在该类中添加所有包装方法,以使您的生活更轻松。
该类的代码如下所示:
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_674_0@解决方法
我正在尝试将值插入sqlite
Android应用程序数据库。我正在编写以下代码:
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 columns 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:
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,请注明来意。