gpt4 book ai didi

android - 如何在滚动(分页)期间将新数组列表连接到现有数组列表并显示给 recyclerview android

转载 作者:行者123 更新时间:2023-11-30 00:28:47 24 4
gpt4 key购买 nike

我正在显示从服务器到 recyclerview 的数组列表。现在我添加了分页,它工作正常并在 recyclerview 中显示新列表替换以前的列表。但我希望像新列表这样的分页将连接到现有列表并显示合并列表(如 facebok,如果我在显示某些项目后向下滚动,它将新项目添加到列表中,与最后一个列表连接并显示所有项目)在 recyclerview 中。

适配器构造函数:

public NewsFeedAdapter (ArrayList<NewsFeedClass> newsFeedClassArrayList, Context context ){

this.context=context;
this.newsFeedClassArrayList=newsFeedClassArrayList;

}

适配器代码:

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

Context context;
private static ArrayList<NewsFeedClass> newsFeedClassArrayList=new ArrayList<>();
private NewsFeedClass newsFeedClass;
private String videoId="zDlMVlUriLw";
private int totalLikeWow; // total like,dislike,wow,bleh count;
AsyncTaskClass asyncTaskClass;
private NameShowWho_SharedPostAdapter nameShowWhoSharedPostAdapter;
NameShowWho_SharedPost_class nameShowWhoSharedPost_class;
private int changeValue;//like ad/less on button click
private ViewPagerAdapter viewPagerAdapter;
int previousItemsSize;


public NewsFeedAdapter (ArrayList<NewsFeedClass> newsFeedClassArrayList, Context context ){

this.context=context;
// this.newsFeedClassArrayList=newsFeedClassArrayList;

addItems(newsFeedClassArrayList);

}


public class MyViewHolder extends RecyclerView.ViewHolder {





public MyViewHolder(View itemView) {
super(itemView);


}
}

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

return new MyViewHolder(view);

}

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


}



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

@Override
public long getItemId(int position) {
return position;
}

@Override
public int getItemViewType(int position) {
return position;
}


private void addItems(List<NewsFeedClass> newItems) {
previousItemsSize = newsFeedClassArrayList.size();
// Append the new items to the old items
newsFeedClassArrayList.addAll(newItems);
// Notify the adapter about the newly added items
notifyItemRangeInserted(previousItemsSize, newItems.size());
}
}

在这个问题上我需要帮助。我试过了,但没有找到。

最佳答案

这是实现此目的的一种方法:

  1. 在您的适配器类构造函数中创建一个新的空列表。
  2. 添加一个新的公共(public)方法以使用新项目更新适配器数据。

例如:

private List<String> mItems; // Demo data source

// Adapter constructor creates an empty list
public MyAdapter() {
mItems = new ArrayList<>();
}

public void addItems(List<String> newItems) {
int previousItemsSize = mItems.size();
// Append the new items to the old items
mItems.addAll(newItems);
// Notify the adapter about the newly added items
notifyItemRangeInserted(previousItemsSize, newItems.size());
}

现在,当您需要添加一组新的项目时 - 只需调用 AddItems() 方法即可。

关于android - 如何在滚动(分页)期间将新数组列表连接到现有数组列表并显示给 recyclerview android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44878194/

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