В настоящее время я работаю над учебником по блокнотам, а упражнение 2 завершает код для удаления заметок. Тем не менее, я немного запутался, как это работает. Вот соответствующий код:
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);
}
В упражнении говорится: «Поле id этого объекта [AdapterContextMenuInfo] сообщает нам позицию элемента в ListView. Затем мы передаем это методу deleteNote () нашего NotesDbAdapter, и заметка удаляется».
Глядя на определение базы данных, поля идентификаторов вновь добавленных строк / заметок в базу данных автоматически генерируются с помощью автоматически увеличивающегося числа. Поэтому, если у нас есть 4 заметки с идентификаторами 1,2,3,4 (не уверен, проиндексирован ли его ноль или нет!) И удаляем вторую заметку, не должны ли мы остаться с идентификаторами 1,3,4? Что означает, что попытка удалить последнюю заметку (которая теперь является третьей в списке, но все еще с ее первоначальным 4-м индексом) должна вместо этого удалить строку с индексом = 3? Или строки автоматически переиндексируются при удалении строки?
Наконец, вы можете просмотреть / просмотреть базу данных на вашем телефоне для приложения?