我遇到了一個問題,其中項目插入到我的數據庫兩次。我沒有2插入語句。SQLite插入數據兩次
我想檢查一個數組的元素是否爲空。
這裏是我的代碼
片段在我的主要活動
private String[] dateTimeDispStr= new String[2];
中的onCreate
:
dateTimeDispStr[0]=null;
dateTimeDispStr[1]=null;
同一活動的其他部分:
//-------------------------------------------update time----------------------------------------//
public void updatetime()
{
dateTimeDispStr[0]=new StringBuilder()
.append(pad(mhour)).append(":")
.append(pad(mminute)).toString();
tdv.editRow(this, dateTimeDispStr);
if(dateTimeDispStr[1]!=null){
update();
}
}
//-------------------------------------------update date----------------------------------------//
private void updateDate() {
dateTimeDispStr[1]=new StringBuilder()
// Month is 0 based so add 1
.append(mMonth + 1).append("/")
.append(mDay).append("/")
.append(mYear).append(" ").toString();
tdv.editRow(this, dateTimeDispStr);
if(dateTimeDispStr[0]!=null){
update();
}
}
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:MM");
public void update(){
Calendar cal = Calendar.getInstance();
cal.set(mYear, mMonth + 1, mDay, mhour, mminute, 0);
String date = formatter.format(cal.getTime());
tdi.setDate(date.split(" ")); // split makes an array of ["date", "time"]
db.addItem(tdi);
Log.d("Item set in the db", "The item: " + date);
}
這裏我的數據庫哈ndler
// Adding new ToDoItem
public void addItem(ToDoItem item) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_TASK, item.getTDItem()); // item task
values.put(KEY_DATE, item.getDate()); // item date
values.put(KEY_PRIORITY, item.getPriority()); // item priority
// Inserting Row
db.insert(TABLE_TDL, null, values);
db.close(); // Closing database connection
}
tdv.editRow在正在擴展表格佈局的UI上編輯該行。我將添加在一秒內檢查null的功能。它基本上追加已經有待辦事項的任務的行,但與日期和時間我想將它們添加到該行
據我所知,我在這兩種方法調用更新,但那是因爲如果用戶先點擊任一按鈕。
爲什麼不使用db.update()如果你想更新... –
你是否曾經重置'dateTimeDispStr'?否則,數據將在第一次插入後插入兩次。 – Sam
基本上我想添加一個新的條目,當我有我的項目的時間和日期 – Vnge