Intereting Posts
Android: ImageView getID (); Возвращаемое целое число Используйте смартфонную камеру из веб-приложения для сканирования QR-кода Ошибка с Eclipse и Android API уровня 22 Java.lang.ClassCastException: android.view.ViewGroup $ LayoutParams без использования LayoutParams OnCreateOptionsMenu внутри фрагментов Как удалить тень под панелью действий с помощью AppCompat.Light.NoActionBar? Android.os.FileUriExposedException: файл: ///storage/emulated/0/test.txt выставляется вне приложения через Intent.getData () Как «перезапустить» приложение для Android в программном отношении Как изменить размер эмулятора AVD (в Eclipse)? Как вы можете обнаружить двухъядерный процессор на Android-устройстве из кода? Как заменить ресурсы строк на Android Gradle Запуск PopupMenu с помощью кнопок внутри элемента ListView Android: Как мне избежать запуска активности, которая уже находится в стеке? Android Google Directions Service можно использовать изначально? С оболочкой? Доступны общественные транспортные / велосипедные маршруты? Что такое Google Web Driver в Android SDK Manager?

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

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

Мой код:

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

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

Solutions Collecting From Web of "Как получить представление в RecyclerView.Adapter для Snackbar?"

Измените свой метод и передайте 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(); } 

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

Закрытый конечный ItemTouchHelperAdapter mAdapter; Частный окончательный 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); }