RecyclerView элемент нажмите и откройте еще один переработчик - PullRequest
0 голосов
/ 05 января 2020

введите описание изображения здесь, у меня есть почти 250 патентов, которые я хочу показать в родительском обзоре. После щелчка по элементу родительского просмотра переработчика будет отображаться более сотни данных под каждым родительским элементом в другом представлении переработчика. Как я могу сделать это, как эта картина.

enter image description here

1 Ответ

0 голосов
/ 05 января 2020

Я бы сделал это так. Создайте интерфейс:

interface AdapterContract{
  fun onListItemClick(id: String) //whatever the parameter is
}

Когда вы создаете экземпляр адаптера в Fragment1, вы можете реализовать этот интерфейс:

class Fragment1 : Fragment(), AdapterContract{
  ...
  //when instantiating the adapter:
  private val adapter: MyAdapter by lazy{
      MyAdapter(this //for the interface)
  }
  //override the method of Adapter contract
}

Конструктор вашего адаптера должен выглядеть следующим образом: MyAdapter(adapterContract: AdapterContract) : ListAdapter<MyAdapter.MyViewHolder>(Diff_Util_SOME_OBJECT)

Чем в адаптерах ViewHolder:

itemHolder?.setOnClickListener{
 adapterContract.onListItemClick(someId)
}

Теперь в вашем методе переопределения в Fragment1:

override method onListItemClick(id: String){
  //pass this id to the next opening fragment (like Bundles or navargs)
 //init `Fragment2` which is going to have all items, that belong to `Fragment1` selected item
}

Загрузить данные:)

Я надеюсь, что вы используете базу данных или что-то. Должно работать и с жестко закодированными структурами данных, но только для безопасности:).

...