Toast message onClick NOT SHOWING (RecycleView)

2019-09-06 06:42发布

Im trying show a toast msg when clicked on a item from my RecycleView, Ive tried many examples, but its not giving me anything. Can somebody give me a different example that i can follow, at the end i wanna set the onClick to show a new fragment. If I can get an example on that, it will be great. Im using this code:

public class MovieAdapter extends RecyclerView.Adapter<MovieAdapter.ViewHolder> {

    private List<Movie> movies;
    private int card_layout;
    private Context mContext;

    public MovieAdapter(List<Movie> movies, int card_layout, Context context) {

        this.movies = movies;
        this.card_layout = card_layout;
        this.mContext = context;
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        final View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(card_layout, viewGroup, false);
        return new ViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int i) {
        final Movie movie = movies.get(i);

        viewHolder.movieImage.setImageDrawable(mContext.getDrawable(movie.getImageResourceId(mContext)));
        viewHolder.movieName.setText(movie.mName);

        viewHolder.currentMovie = movie;

    }

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

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView movieName;
        public ImageView movieImage;
        public Movie currentMovie;


        public ViewHolder( View itemView) {
            super(itemView);
            movieName = (TextView) itemView.findViewById(R.id.movieName);
            movieImage = (ImageView)itemView.findViewById(R.id.movieImage);


            itemView.setOnClickListener(new View.OnClickListener(){
                @Override
            public void onClick(View itemView){
                    Toast.makeText(itemView.getContext(),currentMovie.mName,Toast.LENGTH_SHORT ).show();
                }
            });
        }

    }
}

Do I have to implement something in my MainActivity as well? and please dont get mad with me, Im just a starting with all this. All your help will be appriciated. thanks

1条回答
放荡不羁爱自由
2楼-- · 2019-09-06 07:05

Layout is not clickable by default. to make clickable add setClickable to true :

View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(
                                                 card_layout, viewGroup, false);
itemView.setClickable(true);
itemView.setFocusableInTouchMode(true);
查看更多
登录 后发表回答