Как вернуть объект из пользовательского адаптера в просмотр списка, используя setOnItemClickListener - PullRequest
0 голосов
/ 03 марта 2019

Я знаю Есть много вариантов этого вопроса уже ... Я читал их.Но решений пока нет, так что здесь идет.

  • У меня есть локальная база данных, в которой хранятся даты, время и т. Д. Объектов событий.
  • В базе данных есть метод, который возвращает Arraylist всех объектов событий.
  • У меня есть специальный адаптер, связанный с представлением списка, который использует arrayList of Events из базы данных и использует 'get'методы для каждого объекта, чтобы отобразить расписание прокрутки всех событий.

пока, все хорошо.

Теперь я хочу иметь возможность щелкнуть элемент в просмотре списка и удалитьэто используя setOnItemClickListener.В базе данных есть метод deleteEvent, который принимает идентификатор события, которое нужно удалить.«Идентификатор» можно получить с помощью метода «getEventId» в классе EventObject.

Итак, мне нужен способ получить ссылку на соответствующий EventObject при щелчке элемента в просмотре списка, чтобы я мог вызвать 'getId' и удалить это событие из базы данных.

eventsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            //EventObject e1 = ???
            dbHandler.deleteEvent(e1.getEventId());
        }
    });

1 Ответ

0 голосов
/ 03 марта 2019

Ответ от ADM:

EventObject e1=list.get(position)

Где list - набор данных (arrayList), который вы используете для заполнения listview.Не забудьте уведомить Listview (обновить активность) после удаления.

...