У меня проблема с фрагментами. В первом фрагменте у меня есть обзор переработчика, и когда я нажимаю на элемент, он переходит к другому фрагменту. Я определил интерфейс для этой цели, но он не работает. Вот что у меня в адаптере:
private List<KategoriteNested> kategoriteNested;
private Context mContext;
private static OnItemCLickListener mOnItemCLickListener;
public void setOnItemCLickListener(OnItemCLickListener onItemCLickListener) {
mOnItemCLickListener = onItemCLickListener;
}
public AllCategoriesAdapter(List<KategoriteNested> kategoriteNested, Context mContext) {
this.kategoriteNested = kategoriteNested;
this.mContext = mContext;
}
@NonNull
@Override
public AllCategoriesViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View mView = LayoutInflater.from(mContext)
.inflate(R.layout.all_categories_item, parent, false);
return new AllCategoriesAdapter.AllCategoriesViewHolder(mView);
}
@Override
public void onBindViewHolder(@NonNull AllCategoriesViewHolder holder, int position) {
KategoriteNested mKategoriteNested = kategoriteNested.get(position);
String categoryEmertimi = mKategoriteNested.getKategoria().getName();
holder.categoryEmertimi.setText(categoryEmertimi);
holder.itemView.setOnClickListener(v -> {
int index = holder.getAdapterPosition();
mOnItemCLickListener.OnItemClick(index);
});
}
public interface OnItemCLickListener{
void OnItemClick(int position);
}
@Override
public int getItemCount() {
return kategoriteNested.size();
}
public static class AllCategoriesViewHolder extends RecyclerView.ViewHolder {
TextView categoryEmertimi;
public AllCategoriesViewHolder(@NonNull View itemView) {
super(itemView);
categoryEmertimi = itemView.findViewById(R.id.category_emertimi);
}
}
Я получаю позицию элемента с помощью getAdapterPosition (). И в моем фрагменте у меня есть это:
private void goToCategoriesFragment() {
allCategoriesAdapter = new AllCategoriesAdapter(kategoriteNested, getContext());
allCategoriesAdapter.setOnItemCLickListener(position -> {
if (mOnItemCLickListener != null) {
Fragment fragment = new CategoriesDetailsFragment();
assert getFragmentManager() != null;
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.container, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
}
Я нажимаю на элемент, и ничего не происходит, я также не получаю сообщение об ошибке в logcat. Интересно, правильно ли я осуществляю связь между фрагментом и адаптером, используя интерфейс, или я что-то упускаю. Может ли кто-нибудь дать мне объяснение, как можно перемещаться между фрагментами, используя обзор переработчика. Любая помощь будет оценена.