我對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