RecyclerView и получить ItemId - PullRequest
0 голосов
/ 25 марта 2020

Я выполняю пролистывание для удаления с RecyclerView и ItemTouchHelper. В моей функции onSwiped я вызываю службу для удаления элемента с помощью запроса API, но для этого мне нужен адаптер, чтобы дать мне идентификатор элемента. Я переопределил функцию getItemId() моего адаптера

@Override
public long getItemId(int position) {
   return dataSet.get(position).getId();
}

Однако, когда я использую ее в моей функции onSwiped

@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
     AddBaseService addBaseService = AddBaseService.sharedInstance();
     long baseId = viewHolder.getItemId(viewHolder.getAdapterPosition());
     addBaseService.deleteBase(String.valueOf(baseId));

, я получил ошибку в строке getAdapterPosition говоря

getItemId() in ViewHolder cannot be applied to (int)

хотя getAdapterPosition должен возвращать int: /

Ответы [ 2 ]

1 голос
/ 25 марта 2020

РЕДАКТИРОВАТЬ:

Вот две ссылки, которые могут помочь вам решить вашу проблему:


Используется OP: adapter.getItemId(viewHolder.getAdapterPosition()); вместо viewHolder.getItemId() решить его проблему.

0 голосов
/ 25 марта 2020

я думаю, что viewHolder.getItemId () ожидает долго, а не int

...