gpt4 book ai didi

java - setOnItemClickListener“RecyclerView”的问题

转载 作者:行者123 更新时间:2023-12-02 11:17:01 24 4
gpt4 key购买 nike

我正在流行电影项目工作,我使用了电影数据库我成功地从 API 获取了数据,但是当我单击 RecyclerView 中的项目时,它不起作用。我已按照 udacity 教程进行操作

热门电影问题

there is the link of the source code

这是适配器

我应该做什么?

package com.popmov.popmov.popmov

import android.content.Context
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView


import com.popmov.popmov.popmov.data.Movie;
import com.squareup.picasso.Picasso;


class MoviesAdapter extends RecyclerView.Adapter<MoviesAdapter.MoviesViewHolder> {
private final Context context;
private Movie[] moviesData;
public static final String BASE_URL_IMAGE = "http://image.tmdb.org/t/p/w342";

private final MoviesAdapterOnClickHandler moviesAdapterOnClickHandler;

public interface MoviesAdapterOnClickHandler {
void onItemClickListener(int id, String title, String imageUrl, String synopsis, double rating, String releaseDate);
}

public MoviesAdapter(MoviesAdapterOnClickHandler clickHandler,Context context) {
moviesAdapterOnClickHandler = clickHandler;
this.context=context;
}

public class MoviesViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

public final ImageView imageView;

public MoviesViewHolder(View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.image_view_movie);
itemView.setOnClickListener(this);
}

@Override
public void onClick(View v) {
int adapterPosition = getAdapterPosition();

int id = moviesData[adapterPosition].getId();
String title = moviesData[adapterPosition].getTitle();
String imageUrl = moviesData[adapterPosition].getImageUrl();
String synopsis = moviesData[adapterPosition].getSynopsis();
double rating = moviesData[adapterPosition].getRating();
String releaseDate = moviesData[adapterPosition].getReleaseDate();

moviesAdapterOnClickHandler.onItemClickListener(id, title, imageUrl, synopsis, rating, releaseDate);
}
}

@Override
public MoviesViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
Context context = viewGroup.getContext();
int layoutForItem = R.layout.movies_list_item;
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(layoutForItem, viewGroup, false);
return new MoviesViewHolder(view);
}

@Override
public void onBindViewHolder(MoviesViewHolder holder, int position) {
String path = BASE_URL_IMAGE + moviesData[position].getImageUrl();
Picasso.get()
.load(path)
.placeholder(R.mipmap.poster)
.into(holder.imageView);
}

@Override
public int getItemCount() {
if (null == moviesData) {
return 0;
} else {
return moviesData.length;
}
}


}

最佳答案

在您的 movies_list_item.xml 中,将 ImageView 可点击设置为 false

android:clickable="false"

由于您的 ImageView 可点击属性设置为 true,因此您的 ImageView 正在吸收 ClickListener

关于java - setOnItemClickListener“RecyclerView”的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50200061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com