Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.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 Recyclerview无限滚动_Android_Android Recyclerview_Android Volley - Fatal编程技术网

Android Recyclerview无限滚动

Android Recyclerview无限滚动,android,android-recyclerview,android-volley,Android,Android Recyclerview,Android Volley,我想用Adapters和RecyclerViews编写无休止的滚动代码,我正在从JSON获取我的项目。虽然我已经阅读了这些指南(Codepath和github),但我发现很难将其应用到我自己的场景中 我的json有以下格式: 以下是我正在使用的代码: 片段: 更改适配器的此重写方法: @Override public int getItemCount() { return Integer.MAX_VALUE; } 并使用此方法使用位置获取模型对象: private Data getIt

我想用Adapters和RecyclerViews编写无休止的滚动代码,我正在从JSON获取我的项目。虽然我已经阅读了这些指南(Codepath和github),但我发现很难将其应用到我自己的场景中

我的json有以下格式:

以下是我正在使用的代码:

片段:


更改适配器的此重写方法:

@Override
public int getItemCount() {
    return Integer.MAX_VALUE;
}
并使用此方法使用位置获取模型对象:

private Data getItem(int position) {
    return my_data.get(position % my_data.size());
}
由于您使用的是
RecyclerView
因此不会创建新对象,并且列表中会重复填写您的项目。

请考虑使用。谷歌建议做无休止的滚动。
public class Data2Adapter extends RecyclerView.Adapter<Data2Adapter.ViewHolder> {

    private Context context;
    private List<Data> my_data;

    public Data2Adapter(Context context, List<Data> my_data) {
        this.context = context;
        this.my_data = my_data;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.anim_grid,parent,false);

        return new ViewHolder(itemView);
    }

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

        holder.description.setText(my_data.get(position).getTitle());
        Glide.with(context).load(my_data.get(position).getCapa()).into(holder.imageView);

    }

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

    public  class ViewHolder extends  RecyclerView.ViewHolder{

        public TextView description;
        public ImageView imageView;

        public ViewHolder(View itemView) {
            super(itemView);
            description = (TextView) itemView.findViewById(R.id.textview7);
            imageView = (ImageView) itemView.findViewById(R.id.imageview1);
        }
    }
}
public class Data {

    private int id;
    private String title,capa;

    public Data(int id, String title, String capa) {
        this.id = id;
        this.title = title;
        this.capa = capa;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getCapa() {
        return capa;
    }

    public void setCapa(String capa) {
        this.capa = capa;
    }
}
@Override
public int getItemCount() {
    return Integer.MAX_VALUE;
}
private Data getItem(int position) {
    return my_data.get(position % my_data.size());
}