Проблема с ListView и Sqlite

206
28 апреля 2018, 19:09

В моем приложении для хранения данных используется Sqlite. В таблице несколько столбцов, один из которых title. Данные из этого столбца передаются в ArrayList, который в свою очередь передается в адаптер ListView. Таким образом, на экране телефона появляется список из столбца title. При длительном нажатии на один item ListView появляется контекстное меню, через которое нужно удалить из базы данных ряд, title которого находится в item'е. Я второй день ломаю голову над тем, как сделать удаление. Когда вызывается контекстное меню, можно узнать позициию item'а, над которым оно было вызвано. Но для удаления нужна не позиция, а id ряда. Как мне реализовать удаление?

Answer 1

Я так понимаю, Вы воспользовались стандартным адаптером для списка ListView. который хранит только строковые переменные. Вы можете написать свой адаптер для ListView со своим сложным объектом. Свои объекты вы можете индексировать с помощью клаcса UUID, который представляет собой уникальный идентификатор:

public class Product {
 public String name;
 public int price;
 public int image;
 public UUID ID; //уникальный идентификатор
}
Product(String _describe, int _price, int _image) {
 name = _describe;
 price = _price;
 image = _image;
 ID = UUID.randomUUID(); //создаём уникальный идентификатор для объекта
}

По идентификатору вы можете легко удалять элементы из БД и из ListView. Подробнее о том, как работать с ListView можно посмотреть здесь и здесь. Также, в книге Android. Программирование для профессионалов Билл Филлипс, К. Стюарт, Кристин Марсикано есть целая глава, которая описывает управление объектами в БД.

READ ALSO
Проверить,есть ли информация в getIntent()

Проверить,есть ли информация в getIntent()

Есть условие,но нужно что-бы я знал,есть ли информация в getIntent, как это проверить?

175
Проблемы с фильтром для jList

Проблемы с фильтром для jList

Пытаюсь создать фильтр для jList в котором присутствуют элементы из базы данных SQLite в своих попытках и не без помощи гугла продвинулся на половинуУдалось...

223
Получить данные в приложении android

Получить данные в приложении android

Есть надобность получать данные, которые приходят в приложение (apk)

251