I'm using Recyclerview for my datalist in CardView, but I don't know how to make onClick in my data list. Can someone help me to solve this?
My code is:
HomeFragment.Java
public class HomeFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_grid_layout, container, false);
dataList = view.findViewById(R.id.dataList);
titles = new ArrayList<>();
images = new ArrayList<>();
titles.add("Berita");
titles.add("Customer Care");
titles.add("Cabang Clipan");
titles.add("Info Layanan");
titles.add("Info Pembayaran");
titles.add("Promo");
titles.add("Syarat Kedit");
titles.add("Simulasi Kredit");
images.add(R.drawable.ic_article);
images.add(R.drawable.ic_cs);
images.add(R.drawable.ic_cbng_clipan);
images.add(R.drawable.ic_simulation);
adapter = new Adapter(getActivity(), titles, images);
GridLayoutManager gridLayoutManager = new
GridLayoutManager(getActivity(), 4, GridLayoutManager.VERTICAL, false);
dataList.setLayoutManager(gridLayoutManager);
dataList.setHasFixedSize(true);
dataList.setAdapter(adapter);
return view;
}
}
I'm using Adapter for Recyclerview:
Adapter.Java
public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> {
List<String> titles;
List<Integer> images;
Context ctx;
LayoutInflater inflater;
public Adapter(Context ctx, List<String> titles,List<Integer> images){
this.titles = titles;
this.images = images;
this.inflater = LayoutInflater.from(ctx);
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.fragment_home,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.title.setText(titles.get(position));
holder.gridIcon.setImageResource(images.get(position));
}
@Override
public int getItemCount() {
return titles.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
TextView title;
ImageView gridIcon;
public ViewHolder(@NonNull View itemView) {
super(itemView);
title = itemView.findViewById(R.id.text_1);
gridIcon = itemView.findViewById(R.id.image_1);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(),"Click on " + getAdapterPosition(),Toast.LENGTH_LONG).show();
Intent i = new Intent(v.getContext(),SimulationActivity.class);
i.setFlags(i.FLAG_ACTIVITY_NEW_TASK);
v.getContext().startActivity(i);
}
});
}
}
}
I have edited my adapter for onClickListener
Please help me to solve this.