【发布时间】:2018-01-06 12:40:22
【问题描述】:
在我的改造服务响应中,我使用ArrayList<HashMap<String,String>>() 和HashMap<String, String>() 来显示一些值。显示数据时,它是重复的。
在调用该函数之前,我也很清楚列表list.clear()。
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String,String>>();
HashMap<String,String> hashmap = new HashMap<String, String>();
public void displayList(){
list.clear();
WebserviceAPI apiService =retrofit.create(WebserviceAPI.class);
Call<OrderDetailsResponse> call = apiService.displayOrder("orderdetails",token_acces,id_order);
call.enqueue(new Callback<OrderDetailsResponse>() {
@Override
public void onResponse(Call<OrderDetailsResponse> call, Response<OrderDetailsResponse> response) {
OrderDetailsResponse result = response.body();
List<OrderDetails> data=result.getData();
returnstatus=result.isStatus();
msg= result.getMessage();
if(returnstatus){
for (OrderDetails a: data){
hashmap.put(FIRST_COLUMN, a.getProduct_name());
hashmap.put(SECOND_COLUMN, a.getProduct_quantity());
hashmap.put(THIRD_COLUMN, a.getOriginal_product_price());
list.add(hashmap);
Log.d("ressorder",""+list);
}
adapter=new ListViewAdapter(getActivity(), list);
listView.setAdapter(adapter);
}
}
@Override
public void onFailure(Call<OrderDetailsResponse> call, Throwable t) {
Log.d("fragerr",""+t.getMessage());
progress.dismiss();
}
});
}
我的原木猫
[{Second=1, First=Pen, Third=27.00}, {Second=1, First=Pen, Third=27.00}, {Second=1, First=Book, Third=15.00}, {Second=1, First=Book, Third=15.00}, {Second=1, First=Pencil, Third=12.00}, {Second=1, First=Pencil, Third=12.00}]
重复两次
【问题讨论】:
-
为什么在for循环中初始化适配器?
-
FIRST_COLUMN, SECOND_COLUMN..的值是多少?
-
我已经编辑了我的问题。
FIRST_COLUMN代表产品名称 (pen,book,pencil),SECOND_COLUMN 代表数量 (1,1,1),THIRD_COLUMN 代表价格 (27.00,15.00,12.00)。但这些值在我的列表中是 twise。请参阅 logcat -
您确定需要 HashMap 列表吗? HashMap 是一个非常昂贵的内存对象