我目前正在使用記事本教程,並且exercise 2完成了刪除註釋的代碼。不過,我很困惑這是如何工作的。下面是相關的代碼:刪除行功能在Android記事本教程中如何工作?
public boolean onContextItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case DELETE_ID:
AdapterContextMenuInfo info =
(AdapterContextMenuInfo) item.getMenuInfo();
mDbHelper.deleteNote(info.id);
fillData();
return true;
}
return super.onContextItemSelected(item);
}
的行使狀態:「這[AdapterContextMenuInfo]對象的ID字段告訴我們在ListView的項目的位置,然後我們把它傳遞給deleteNote()方法我們NotesDbAdapter的並且該筆記被刪除。「
查看數據庫定義,數據庫中新添加的行/註釋的id字段是由自動遞增的數字自動生成的。因此,如果我們有4個ID爲1,2,3,4的註釋(不確定它是否爲零索引!)並刪除第二個註釋,我們是不是應該留下ID爲1,3,4?這意味着試圖刪除最後一個音符(現在是列表中的第三個音符,但仍然以其原始的第4個索引)應刪除索引= 3的行?或者,行被刪除後行會自動重新索引?
最後,你可以在手機上查看/瀏覽數據庫中的應用程序嗎?
啊,謝謝。所以返回的行ID是數據庫的ID,而不是View中的物理位置。因此,列表中的哪一行並不重要(這是我如何預期它會被執行的) –
是的。還有另外一個字段,「位置」,它具有列表/適配器中的實際位置。 – dmon