cardview on click returns wrong result

102 Views Asked by At

I have a few CardView items. I want to open different activity when I click on it. This is part of my CardView adapter class

 @Override
public int getItemCount() {
    return productGroups.size();
}

public class ViewHolder extends RecyclerView.ViewHolder{
    private TextView txtGroupName;
    public ViewHolder(final View view) {
        super(view);

        txtGroupName = (TextView)view.findViewById(R.id.txtNameOfGroup);

        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                switch (getLayoutPosition()){
                    case 0: Intent intent = new Intent(view.getContext(),MyProductsActivity.class);
                        view.getContext().startActivity(intent);
                    case 1: Intent intent1 = new Intent(view.getContext(), VegetablesActivity.class);
                        view.getContext().startActivity(intent1);
                }

            }
        });
    }
}

I click on first item (want to open MyProductsActivity.class) but opens VegetablesActivity.class, and only when I click back button on my phone opens MyProductsActivity.class

1

There are 1 best solutions below

0
On BEST ANSWER

You forgot to put a break:

        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                switch (getLayoutPosition()){
                    case 0: Intent intent = new Intent(view.getContext(),MyProductsActivity.class);
                        view.getContext().startActivity(intent);
                    break;                                            //Here
                    case 1: Intent intent1 = new Intent(view.getContext(), VegetablesActivity.class);
                        view.getContext().startActivity(intent1);
                    break;                                            //Here
                }

            }
        });