Попытка запустить фрагмент из адаптера с использованием NavitaionComponent
Перехожу на Android Navigation. Появилась такая проблема. Нужно открыть новый фрагмент при клике на айтем адаптера. Переход выполняю с помощью findNavController().navigate(R.id.startCollectFragment). Но приложение крашится с ошибкой
Unable to instantiate ...StartCollectFragment: make sure class name exists
Сам адаптер
class ListOrdersAdapter(
private val listOrders: List<Orders>,
private val getIdOrders: (id: String, title: String) -> Unit
): RecyclerView.Adapter<ListOrdersAdapter.ListOrdersViewHolder>()
{
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ListOrdersViewHolder {
return ListOrdersViewHolder(LayoutInflater.from(parent.context)
.inflate(R.layout.item_order, parent, false))
}
override fun onBindViewHolder(holder: ListOrdersViewHolder, position: Int) {
holder.bind(listOrders[position])
}
override fun getItemCount() = listOrders.size
inner class ListOrdersViewHolder(override val containerView: View)
: RecyclerView.ViewHolder(containerView), LayoutContainer {
fun bind(order: Orders){
with(containerView){
numberOrderTextView.text = order.nubmer
countTextView.text = order.count
timeTextView.text = order.time
dateTextView.text = order.date
//Передаю Id заказа для получения конкретной информации
containerView.setOnClickListener { getIdOrders.invoke(order.id, order.nubmer) }
}
}
}
}
Код в активити
override fun showOrderList(listOrders: List<Orders>) {
listOrdersRecyclerView.adapter = ListOrdersAdapter(
listOrders = listOrders,
getIdOrders = { id, title -> onAboutActivity(id, title) }
)
}
private fun onAboutActivity(id: String, title: String){
findNavController().navigate(R.id.startCollectFragment)
}