亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在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 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號