Получение представлений внутри BottomSheetDialogFragment из адаптера RecyclerView

У меня RecyclerView. Каждая ячейка этого представления RecyclerView имеет кнопку, которая вызывает BottomSheetDialogFragment из Adapter.

Нижний лист действительно отображается и корректно закрывается при вызове его с моего Adapter.

Я хотел бы иметь возможность удалить ячейку, нажав кнопку внутри моего BottomSheetDialogFragment.

Вот моя кнопка внутри моего класса BottomSheetDialogFragment

    <Button
        android:id = "@+id/deleteBtn"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:text = "Delete" />

и вот мой onBindViewHolder(), где я не могу найти способ получить доступ к deleteBtn из BottomSheetDialogFragment, поэтому я могу продолжить удаление своей ячейки

override fun onBindViewHolder(holder: SavesAdapterHolder, position: Int) {
    val bottomSheet: BottomSheetDialogFragment = mBottomSheet()
    bottomSheet.setStyle(DialogFragment.STYLE_NORMAL, R.style.BottomDialogTheme)
    val myActivity = (context as FragmentActivity).supportFragmentManager
    holder.openButton.setOnClickListener {
        bottomSheet.show(myActivity, "bottomSheet $position")

    }
}

Кто-нибудь будет достаточно любезен, чтобы указать мне правильное направление, как получить доступ к моей кнопке удаления изнутри моего onBindViewHolder()

хотелось бы, чтобы этот ответ мог ответить на ваш вопрос, чтобы получить базовые представления BottomSheet

Zain 14.04.2020 01:58
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
738
1

Ответы 1

Представление BottomSheet должно быть доступно методом получить вид().

override fun onBindViewHolder(holder: SavesAdapterHolder, position: Int) {
    val bottomSheet: BottomSheetDialogFragment = mBottomSheet()
    bottomSheet.setStyle(DialogFragment.STYLE_NORMAL, R.style.BottomDialogTheme)
    val myActivity = (context as FragmentActivity).supportFragmentManager
    holder.openButton.setOnClickListener {
        bottomSheet.show(myActivity, "bottomSheet $position")

       // execute the commited transaction before trying to access the view
        myActivity.executePendingTransactions()

      // accessing button view
        bottomSheet.view?.findViewById("*your_btn_id*").setOnClickListener{
             //you can remove item here and notify data set
        }

    }
}

нижний лист.просмотр? к сожалению вернул ноль

PhilBlais 23.01.2019 20:24

отредактировал ответ вызовом executePendingTransactions. Надеюсь, должно работать. @PhilBlais

rafa 25.01.2019 04:04

Другие вопросы по теме