Подтвердить что ты не робот

Как получить представление в RecyclerView.Adapter для Snackbar?

Я реализую Swipe и перетаскиваю RecyclerView с помощью этой статьи. При удалении элемента я хочу показать SnackBar, но для отображения SnackBar требуется View. Я не знаю, как получить View внутри функции RecyclerAdapter.

Мой код:

public void onItemDismiss(int position) {
        notes.remove(position);
        notifyItemRemoved(position);
        /* Show SnackBar */
    }

Изменить: Мой вопрос отличается от этого вопроса. У меня нет никаких проблем при реализации SwipetoDismiss.I его успешно реализовала. Но я хочу показать SnackBar, чтобы пользователь мог быть исключен и отменить. У меня возникла проблема при показе SnackBar не в реализации onSwiped().

4b9b3361

Ответ 1

Измените свой метод и передайте RecyclerView в качестве параметра, чтобы вы получили представление

public void onItemDismiss(int position,RecyclerView rv) {
        notes.remove(position);
        notifyItemRemoved(position);
        /* Show SnackBar */
        Snackbar.make(rv, R.string.snackbar_text, Snackbar.LENGTH_LONG).show(); 
    }

ИЗМЕНИТЬ

private final ItemTouchHelperAdapter mAdapter;
private final RecyclerView rv;
public SimpleItemTouchHelperCallback(ItemTouchHelperAdapter adapter,RecyclerView rv) {
    mAdapter = adapter;
    this.rv=rv;
}

И затем пройдите

 @Override
    public void onSwiped(ViewHolder viewHolder, int direction) {
        mAdapter.onItemDismiss(viewHolder.getAdapterPosition(),rv);
    }