为了账号安全,请及时绑定邮箱和手机立即绑定

如何在android中将项目添加到recyclerView

如何在android中将项目添加到recyclerView

慕婉清6462132 2021-10-06 10:51:13
在我的应用程序中,我想从服务器添加一些列表到我的recyclerView.我的列表项大小有 10 个,但我想将最后 7 个项添加到此 RecyclerView。我不想第3项添加到该recyclerView我写下面的代码:        Call<ListCartResponse> call = apIs.getListCardResponse(jwtToken);        call.enqueue(new Callback<ListCartResponse>() {            @Override            public void onResponse(Call<ListCartResponse> call, Response<ListCartResponse> response) {                if (response.body() != null) {                                if (response.body().getRes().getCarts() != null) {                                    if (response.body().getRes().getCarts().size() > 0) {                                        model.clear();                                        model.addAll(response.body().getRes().getCarts());                                        adapter.notifyDataSetChanged();            }            @Override            public void onFailure(Call<ListCartResponse> call, Throwable t) {            }        });但是在我上面的代码中,将所有 10 个项目添加到recyclerView.我只想添加最后 7 个项目并删除 3 个第一个项目。我的回收器现在查看项目:1 2 3 4 5 6 7 8 9 10 但我想要:4 5 6 7 8 9 10我怎么能
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您可以使用接口subList()方法List

对于您的示例:

model.clear();
model.addAll(response.body().getRes().getCarts().subList(3, 9));

注意:请注意,如果您的服务器列表少于 10 个项目并且您仍然需要最后 7 个项目,那么您应该动态传递索引(上述解决方案将在该实例中崩溃)

参考

subList(int fromIndex, int toIndex)

返回此列表中指定的fromIndex、包含的和toIndex不包含的部分之间的视图 。(如果fromIndex和 toIndex相等,则返回的列表为空。)返回的列表由此列表支持,因此返回列表中的非结构性更改会反映在此列表中,反之亦然。返回的列表支持此列表支持的所有可选列表操作。

此方法消除了对显式范围操作(数组通常存在的排序)的需要。通过传递子列表视图而不是整个列表,任何需要列表的操作都可以用作范围操作。例如,以下习语从列表中删除一系列元素:

list.subList(from, to).clear();

可以为indexOfand构造类似的习语lastIndexOf,并且类中的所有算法Collections都可以应用于子列表。

如果支持列表(即,此列表)以除通过返回列表以外的任何方式在结构上进行了修改,则此方法返回的列表的语义将变为未定义。(结构修改是那些改变这个列表的大小,或者以其他方式扰乱它,以至于正在进行的迭代可能会产生不正确的结果。)

参数:

fromIndex - 子列表的低端点(包括)

toIndex - subList 的高端(独占)

返回:

此列表中指定范围的视图


查看完整回答
反对 回复 2021-10-06
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

我认为这是因为model响应部分未model在您的适配器类中引用。将此添加到您的SupportListAdapter课程中,在收到响应时使用它:


public void replaceModelList(List<Res> newModel){

     model.clear();

     model.addAll(newModel);

     notifyDataSetChanged();

}

收到结果时:


if (response.body().getRes().getCarts() != null) {

     if (response.body().getRes().getCarts().size() > 0)

          adapter.replaceModelList(response.body().getRes().getCarts());


查看完整回答
反对 回复 2021-10-06
  • 3 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信