我想按位置刪除行。我寫了這個,但它不起作用。現在它正在按id刪除一行,而不是按位置刪除。我不知道如何編寫該查詢。如何從位置數據庫中刪除一行
例如,這是我的表:
position | name
1 | aaaa
2 | bbbb
3 | cccc
4 | dddd
現在我刪除的行號3。我想這樣的一個表:
position | name
1 | aaaa
2 | bbbb
3 | dddd
這是刪除方法主要從活動類:
public void onClickBtnDelete(View view) {
SparseBooleanArray checkedItemPositions = getListView()
.getCheckedItemPositions();
int itemCount = getListView().getCount();
int[] tab = new int[itemCount];
for (int i = itemCount - 1; i >= 0; i--){
tab[i] = itemCount - i;
if (checkedItemPositions.get(i)) {
adapter.remove(list.get(i));
db.deleteMyPlace(new MyPlacesTable(tab[i]));
}
}
這是我的刪除方法從數據庫處理器:
public void deleteMyPlace(MyPlacesTable myPlace) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_MY_PLACES, KEY_ID + " = ?",
new String[] { String.valueOf(myPlace.getID()) });
db.close();
}
而且構造,getter和setter:
public MyPlacesTable(int id){
this._id = id;
}
public int getID(){
return this._id;
}
public void setID(int id){
this._id = id;
}
你能幫助我嗎?
什麼是不工作的意思?你在哪裏運行for循環? – Blackbelt
我認爲首先在位置獲取列表項數據並獲取唯一值,然後嘗試從給定的唯一值中刪除數據庫中的相關數據。 –
看看編輯過的帖子。 – rewarien