Привет... Когда я нажимаю на элементы в представлении recycler, он ничего не делает ...
это мой код ... я хочу установить прослушиватель щелчков для каждого элемента в recyclrview, но это не сработало хорошо
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val layoutview = LayoutInflater.from(parent.context).inflate(R.layout.product_items, parent, false) val vh = ViewHolder(layoutview) vh.itemView.setOnClickListener { val pos = vh.adapterPosition val activity = it.context as AppCompatActivity val bundle = Bundle() val myFragment = ItemDetailsfragment() myFragment.arguments = bundle val productitem = product[pos] bundle.putString("title", productitem.title) bundle.putString("price", productitem.price.toString()) bundle.putString("image", productitem.image.toString()) activity.supportFragmentManager.beginTransaction() .replace(R.id.homepage, myFragment) .addToBackStack(null) .commit() } return vh }
Что я уже пробовал:
из On BindViewHolder я могу сделать это и нажать на элементы, но проблема в BindViewHolder заключается в том, что когда я нажимаю везде на экране recyclerview, он переходит к элементам, и это не очень хорошо ... так что скажем может быть он работает на onCreateViewHolder
Sandeep Mewara
Поделитесь, если это поможет:
https://stackoverflow.com/questions/35584584/recyclerview-onclick-not-working
https://stackoverflow.com/questions/39974257/onclicklistener-doesnt-work-with-recyclerview-items
https://antonioleiva.com/recyclerview-listener/
David Crow
Я сделал это таким образом:
@Override public void onBindViewHolder(ViewHolder holder, int position) { ... holder.itemView.setTag(array.get(position)); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick( View view ) { ItemDetails details = (ItemDetails) view.getTag(); ... } }); }