Chinmay
Chinmay

Reputation: 119

How to start new intent for different CardView items?

I have an RecyclerView Adapter

public class CardViewDataMainAdapter extends RecyclerView.Adapter<CardViewDataMainAdapter.ViewHolder> {
        public String[] mColorData;

        public CardViewDataMainAdapter(String[] colorData) {
            mColorData = colorData;
        }

        @Override
        public CardViewDataMainAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview_row, null);
            ViewHolder viewHolder = new ViewHolder(itemLayoutView);
            return viewHolder;
        }

        @Override
        public void onBindViewHolder(ViewHolder viewHolder, int position) {

            viewHolder.card_text.setText(mColorData[position].toString());

        }

        @Override
        public int getItemCount() {
            return mColorData.length;
        }

        public static class ViewHolder extends RecyclerView.ViewHolder {

            public TextView card_text;

            public ViewHolder(View itemLayoutView) {
                super(itemLayoutView);
                card_text = (TextView) itemLayoutView.findViewById(R.id.info_text);
            }

            @Override
            public void onClick(View v) {
            }
        }
    }

And I have a String Array which defines the data for the cards. There are around 20 card items and I want to start new intents which start another RecyclerView activities for every elements using either if else loop or switch case loop

I've tried searching how to implement OnClickListener for RecyclerView but every solution either starts the same intent for all the Card items, or gives some or the other error

I can post my entire project if needed.

https://i.sstatic.net/POcqA.jpg

Upvotes: 1

Views: 2231

Answers (1)

cgr
cgr

Reputation: 4636

Nice question. Follow this or this.

Basically you can add click listener in onCreateViewHolder() and have your adapter imeplemt OnClickListener so you have single onClick() in which you cna have a switch or if() based on position.

Upvotes: 1

Related Questions