Простой, вместо того, чтобы пытаться перемещаться по этому новому экрану из адаптера, вы можете реализовать интерфейс и использовать его из действия / фрагмента, в котором RecyclerView
виден ..
Демонстрация
class UserViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
View itemView;
RecyclerView recyclerView;
UserViewHolder(View itemView) {
super(itemView);
this.itemView = itemView;
recyclerView = itemView.findViewById(R.id.recycler_view);
}
@Override
public void onClick(View v) {
if (listener != null)
listener.onItemListClicked(getAdapterPosition());
}
void bind(User user) {
itemView.setOnClickListener(this);
UserAdapter adapter = new UserAdapter(user.list);
recyclerView.setAdapter(adapter);
itemView.bringToFront(); //Doesn't work!!!
}
}
Интерфейс должен быть размещен вне класса UserViewHolder
.
public interface MyClickListener{
void onItemListClicked(int position);
}
У вас будет открытый метод в адаптере, который установит слушателя
public void setListenerForAdapter(MyClickListener listener) {
this.listener = listener;
}
Наконец-то в своей деятельности вы настроите слушателя на адаптер
adapter.setListener(/*here you will implement your custom listener and start a new activity / fragment based on which position was clicked*/);
По любым другим вопросам не стесняйтесь задавать.Удачного кодирования!