Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 需要为我从Api获得的列表创建适配器_Android_Retrofit_Retrofit2 - Fatal编程技术网

Android 需要为我从Api获得的列表创建适配器

Android 需要为我从Api获得的列表创建适配器,android,retrofit,retrofit2,Android,Retrofit,Retrofit2,现在我正在从tmdb APi获取电影 我想从他们的端点获得评论。 现在,我在MainActivity中从改装到我的recycleview中获取电影。 我有三个模型类和接口 我不知道如何创建用于查看列表的适配器。 创建适配器后,我需要在DetailsActivity中调用它 谁能帮帮我吗 我在以下方面出错: public int getItemCount() 这是我的github项目: 以下是我的模型类,我不会在这里编写getter和setter: public class Reviews {

现在我正在从tmdb APi获取电影

我想从他们的端点获得评论。

现在,我在MainActivity中从改装到我的recycleview中获取电影。 我有三个模型类和接口

我不知道如何创建用于查看列表的适配器。 创建适配器后,我需要在DetailsActivity中调用它 谁能帮帮我吗

我在以下方面出错: public int getItemCount()

这是我的github项目:

以下是我的模型类,我不会在这里编写getter和setter:

public class Reviews {
    @SerializedName("id_review")
    private int id;
    @SerializedName("author_review")
    private String author;
    @SerializedName("content_review")
    private String content;
    @SerializedName("url_review")
    private String url;
评审结果模型类别如下:

public class ReviewResult {

private List<Reviews> reviewResults;

public List<Reviews> getReviewResults() {

    return reviewResults;
}
公共类审核结果{
私人名单审查结果;
公共列表getReviewResults(){
返回审核结果;
}
回顾没有接受者和接受者的说唱者,如下所示:

public class ReviewWraper {

@SerializedName("id")
private int id;
@SerializedName("page")
private int page;
@SerializedName("results")
private List<Reviews> results;
public class ReviewWraper{
@序列化名称(“id”)
私有int-id;
@序列化名称(“页面”)
私人网页;
@SerializedName(“结果”)
私人名单结果;
贝娄是我的适应课。 这是我想做的,但它不起作用。 我在以下方面遇到错误: public int getItemCount()

public class ReviewAdapter{
私有列表和视图列表;
私人停车场;
私人语境;
公共ReviewAdapter(上下文、列表或视图列表){
this.rContext=上下文;
this.rReviewList=rReviewList;
this.rInflater=LayoutInflater.from(上下文);
}
public MovieDetailActivity.MovieViewHolder onCreateViewHolder(视图组父级,最终int视图类型){
视图=rInflater.充气(R.layout.row\u review,parent,false);
BindViewHolder上的公共无效(MovieDetailActivity.MovieViewHolder,int位置){
Reviews Reviews=rReviewList.get(位置);
毕加索(rContext)
.load(reviews.getUrl())
.调整大小(342,0)
.插入(支架.图像视图);
}
@凌驾
public int getItemCount(){
返回值(rReviewList==null)?0:rReviewList.size();
}
公共作废setReviewList(列表ReviewList){
this.rReviewList=新的ArrayList();
this.rReviewList.addAll(ReviewList);
notifyDataSetChanged();
}
私有void notifyDataSetChanged(){
}

}

在您的
复习适配器中
课程:

public class ReviewAdapter extends RecyclerView.Adapter<MainActivity.MovieViewHolder> {

private List<Reviews> rReviewList;
private LayoutInflater rInflater;
private Context rContext;

public ReviewAdapter(Context context, List<Reviews> rReviewList) {
    this.rReviewList = rReviewList;
    this.rContext = context;
    this.rInflater = LayoutInflater.from(context);
}

public MainActivity.MovieViewHolder onCreateViewHolder(ViewGroup parent, final int viewType) {
    // create a new view
    View view = rInflater.inflate(R.layout.row_review, parent, false);
    return new MainActivity.MovieViewHolder(view);
}

@Override
public void onBindViewHolder(MainActivity.MovieViewHolder holder, int position) {
    Reviews reviews = rReviewList.get(position);
    Picasso.with(rContext)
            .load(reviews.getUrl())
            .resize(342, 0)
            .into(holder.imageView);
    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Perform click
        }
    });
}


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

//To update data
public void setReviewList(List<Reviews> reviewsList) {
    this.rReviewList = new ArrayList<>();
    this.rReviewList.addAll(reviewsList);
    notifyDataSetChanged();
}

}
公共类ReviewAdapter扩展了RecyclerView.Adapter{ 私有列表和视图列表; 私人停车场; 私人语境; 公共ReviewAdapter(上下文、列表或视图列表){ this.rReviewList=rReviewList; this.rContext=上下文; this.rInflater=LayoutInflater.from(上下文); } public MainActivity.MovieViewHolder onCreateViewHolder(视图组父级,最终int视图类型){ //创建新视图 视图=rInflater.充气(R.layout.row\u review,parent,false); 返回新的MainActivity.MovieViewHolder(视图); } @凌驾 BindViewHolder上的公共无效(MainActivity.moviewHolder,int位置){ Reviews Reviews=rReviewList.get(位置); 毕加索(rContext) .load(reviews.getUrl()) .调整大小(342,0) .插入(支架.图像视图); holder.itemView.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ //执行单击 } }); } @凌驾 public int getItemCount(){ 返回REREVIEWLIST.size(); } //更新数据 公共作废setReviewList(列表ReviewList){ this.rReviewList=新的ArrayList(); this.rReviewList.addAll(ReviewList); notifyDataSetChanged(); } }
在“ReviewAdapter”构造函数中,您必须再传递一个参数才能获得“rReviewList”您可以编写哪一个参数以及如何编写?谢谢这并不难……等等……我会发布这是什么?-->public main activity.MovieViewHolder共享您的main activity代码我从我的MoviewAdapter复制它。我需要删除它还是将它更改为DetailsActivity。但我没有传递任何意图。我如何才能将布局膨胀到行_review.xml?:))谢谢我是否需要删除此部分,以及我的新列表是否需要MovieHolder?:public MainActivity.MovieViewHolder onCreateViewHolder(ViewGroup parent,final int viewType){View View=rInflater.inflate(R.layout.row_review,parent,false);final main activity.MovieViewHolder viewHolder=new main activity.moviewholder(视图);view.setOnClickListener(new view.OnClickListener(){请看一下编辑过的答案。我为您做了一个适配器。谢谢!非常感谢,您是一个好人:))我在重写onBindViewHolder、getItemCount和setReviewList时遇到错误。请确保ReviewAdapter扩展了RecyclerView.Adapter,如果错误仍然存在,请告诉我错误
public class ReviewAdapter extends RecyclerView.Adapter<MainActivity.MovieViewHolder> {

private List<Reviews> rReviewList;
private LayoutInflater rInflater;
private Context rContext;

public ReviewAdapter(Context context, List<Reviews> rReviewList) {
    this.rReviewList = rReviewList;
    this.rContext = context;
    this.rInflater = LayoutInflater.from(context);
}

public MainActivity.MovieViewHolder onCreateViewHolder(ViewGroup parent, final int viewType) {
    // create a new view
    View view = rInflater.inflate(R.layout.row_review, parent, false);
    return new MainActivity.MovieViewHolder(view);
}

@Override
public void onBindViewHolder(MainActivity.MovieViewHolder holder, int position) {
    Reviews reviews = rReviewList.get(position);
    Picasso.with(rContext)
            .load(reviews.getUrl())
            .resize(342, 0)
            .into(holder.imageView);
    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Perform click
        }
    });
}


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

//To update data
public void setReviewList(List<Reviews> reviewsList) {
    this.rReviewList = new ArrayList<>();
    this.rReviewList.addAll(reviewsList);
    notifyDataSetChanged();
}

}