【发布时间】:2020-03-25 11:18:45
【问题描述】:
我正在使用RecyclerView 和ItemTouchHelper 实现滑动删除。在我的onSwiped 函数中,我调用我的服务以通过 API 请求删除元素,但为此我需要适配器给我元素的 ID。
我覆盖了适配器的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 :/
【问题讨论】: