Home > Back-end >  How get item position in recyclerView
How get item position in recyclerView

Time:02-01

get position of clicked item in recyclerView , i create cardview and link in recyclerView
i want to get position to set the switch case to intent activity of each card view

When I click on card view I, he opens another page, and when you click on Card View 2, he opens another page.

look my code

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder>{

    private List<Movie> movieList;
    private ClickListener<Movie> clickListener;

    RecyclerViewAdapter(List<Movie> movieList){
        this.movieList = movieList;
    }

    @Override
    public RecyclerViewAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.movie_item_list,parent,false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(RecyclerViewAdapter.MyViewHolder holder, final int position) {

        final Movie movie = movieList.get(position);

        holder.title.setText(movie.getTitle());
        holder.image.setBackgroundResource(movie.getImage());

        holder.cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {                               
                clickListener.onItemClick(movie);

                switch (v.getContext()){
                    case position==0:

                        startActivity(new Intent(MainActivity.this, activity_one.class));
                        break;
                    case position==1:
                        startActivity(new Intent(MainActivity.this, activity_tow.class));
                        break;
                    case position==2:
                        startActivity(new Intent(MainActivity.this, activity_three.class));
                        break;
                       
                }






            }





        });





    }

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

    public void setOnItemClickListener(ClickListener<Movie> movieClickListener) {
        this.clickListener = movieClickListener;
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {

        private TextView title;
        private ImageView image;
        private CardView cardView;

        public MyViewHolder(View itemView) {
            super(itemView);
            title = itemView.findViewById(R.id.title_re);
            image = itemView.findViewById(R.id.image_re);
            cardView = itemView.findViewById(R.id.cardview1_id);
        }
    }
}

interface ClickListener<T> {
    void onItemClick(T data);
}

get position of clicked item in recyclerView , i create cardview and link in recyclerView
i want to get position to set the switch case to intent activity of each card view

When I click on card view I, he opens another page, and when you click on Card View 2, he opens another page.

CodePudding user response:

Don't use position. Use holder.getAdapterPosition() instead.

Also, you have a typo in your activity_two intent, which might be throwing you a bit?

  •  Tags:  
  • Related