I am Trying to start an activity from a recycler view item and followed the procedures yet the onClick is not calling in my app. I have checked the hasOnClickListeners() and that returned true. please help me.
public class ShopAdapter extends
RecyclerView.Adapter<ShopAdapter.ViewHolder> {
public List<String> shopDetails;
public View view;
public Context context;
public ShopAdapter(List<String> shopDetails){
this.shopDetails = shopDetails;
}
@Override
public ShopAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int
viewType) {
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_single,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ShopAdapter.ViewHolder holder, int position) {
final String shop_description_data = "ONE";
final String shop_name_data = "TWO";
holder.setShopNameView(shop_name_data);
holder.setShopInfoView(shop_description_data);
Here I have set the item click listener from view holder
holder.setItemClickListener(new ItemClickListener() {
@Override
public void onItemClicked(View view, int position) {
Log.d("GOUSE","on Item Click");
}
});
}
private void startShopActivity(String shop_name_data, String shop_description_data,View view) {
}
@Override
public int getItemCount() {
return shopDetails.size();
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView shopDescView;
private TextView shopNameView;
private View mView;
private ItemClickListener onItemClickListener;
private CardView shopItem;
public ViewHolder(View itemView) {
super(itemView);
mView = itemView;
Here I set the on click listener to my listener interface
mView.setOnClickListener(this);
Log.d("Listener",mView.hasOnClickListeners()+"");
}
public void setShopInfoView(String shopDescText){
shopDescView = mView.findViewById(R.id.shop_info);
shopDescView.setText(shopDescText);
}
public void setShopNameView(String shopNameText){
shopNameView = mView.findViewById(R.id.shop_name);
shopNameView.setText(shopNameText);
}
public void startShop(String shopName,String shopDesc){
Intent shopActivityMainIntent = new Intent(mView.getContext(),MainActivity.class);
shopActivityMainIntent.putExtra("shopName",shopName);
shopActivityMainIntent.putExtra("shopDescription",shopDesc);
mView.getContext().startActivity(shopActivityMainIntent);
}
public void setItemClickListener(ItemClickListener itemClickListener){
Log.d("GOUSE","set item listener");
this.onItemClickListener = itemClickListener;
}
@Override
public void onClick(View view) {
Log.d("GOUSE","set item clicked");
onItemClickListener.onItemClicked(view,getAdapterPosition());
}
}
}