我对Java相对较新,并且希望使用计数器来保存每个使用唯一ID拍摄的图像。通过将计数器变量保存为SQLite,我想在重新启动应用程序时使用与关闭时相同的值来重新检索它。现在的问题是计数器跳过数字(将文件名保存为0,1,3,5等)。当我退出并重新启动应用程序时,它将从0重新开始。保存并检索SQLiteDatabase中的计数器并使用它来保存唯一的文件名
OnCreate中,写,你看到什么错在这些方法中MosidaDb.java
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_PHOTOID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_PHOTOPATH + " TEXT NOT NULL, " +
KEY_LOCATION + " TEXT, " +
KEY_AUDIOPATH + " TEXT, " +
KEY_DESCRIPTION + " TEXT);");
db.execSQL("CREATE TABLE " + DATABASE_TABLE2 + " (" +
KEY_PHOTONAME + " INTEGER NOT NULL, " +
KEY_AUDIONAME + " INTEGER NOT NULL);");
}
public long dbEntry2(int photoname) {
ContentValues cv2 = new ContentValues();
cv2.put(KEY_PHOTONAME, photoname);
return myDatabase.insert(DATABASE_TABLE2, null, cv2);
}
public int getPhotoid() {
Cursor c = myDatabase.rawQuery("SELECT * FROM NameTable", null);
int iQuery = c.getColumnIndex(KEY_PHOTONAME);
int result = 0;
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
result = result + c.getInt(iQuery);
}
return result;
}
读?计数器变量传递给dbEntry2,并由getPhotoid()检索。或者这至少是我想要它做的。感谢
获取的文件名不是0,1,3,6,10 ......? – Caner
1,3,5,7,9现在。所以它似乎计数器运行两次。但最大的问题是,当我重新启动应用程序时,计数器会重置。 – user982476