There is a fragment in which RecyclerView and Adapter (the code is attached below). The whole point is that several months ago I created a project in which everything worked, and there was something wrong with this, I rewrote everything from the old project, there are no errors.
Fragment:
public class PortfolioTaskFragment extends Fragment { private List<PortfolioElement> portfolioElementList; RecyclerView recyclerView; LinearLayoutManager linearLayoutManager; RecyclerViewAdapter recyclerViewAdapter; public PortfolioTaskFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_portfolio_task, container, false); recyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view); linearLayoutManager =new LinearLayoutManager(getContext()); recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(linearLayoutManager); initializeData(); initializeAdapter(); return rootView; } private void initializeData() { //Наполнение RecyclerView } private void initializeAdapter(){ recyclerViewAdapter = new RecyclerViewAdapter(portfolioElementList); recyclerViewAdapter.SetOnItemClickListener(new RecyclerViewAdapter.OnItemClickListener(){ @Override public void onItemClick(View view, int position) { switch (position){ case 0: Toast.makeText(getActivity(), "qwertyu", Toast.LENGTH_SHORT).show(); break; default: Toast.makeText(getActivity(), "asdfzvzxcvzxcv", Toast.LENGTH_SHORT).show(); } } }); recyclerView.setAdapter(recyclerViewAdapter); } } Adapter:
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ElementViewHolder>{ public List<PortfolioElement> portfolioElementList; OnItemClickListener clickListener; public RecyclerViewAdapter(List<PortfolioElement> portfolioElementList) { this.portfolioElementList = portfolioElementList; } public RecyclerViewAdapter.ElementViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view_for_recycler, parent, false); ElementViewHolder elementViewHolder = new ElementViewHolder(view); return elementViewHolder; } @Override public void onBindViewHolder(RecyclerViewAdapter.ElementViewHolder holder, int position) { holder.textView.setText(portfolioElementList.get(position).text); holder.relativeLayout.setBackgroundResource(portfolioElementList.get(position).photoID); } @Override public int getItemCount() { return portfolioElementList.size(); } @Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { super.onAttachedToRecyclerView(recyclerView); } public class ElementViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { CardView cardView; TextView textView; RelativeLayout relativeLayout; public ElementViewHolder(View itemView) { super(itemView); cardView = (CardView) itemView.findViewById(R.id.card_view); textView = (TextView) itemView.findViewById(R.id.text_on_image); relativeLayout = (RelativeLayout) itemView.findViewById(R.id.image_card_view); } @Override public void onClick(View v) { clickListener.onItemClick(v,getAdapterPosition()); } } public interface OnItemClickListener { void onItemClick(View view, int position); } public void SetOnItemClickListener(final OnItemClickListener itemClickListener) { this.clickListener = itemClickListener; } } `