2017-08-10 27 views
0

在下面的代碼我試圖增加一些數據到items,每增加一個數據for子句的值有相同的數據,但在日誌貓那裏是不同的結果。Android添加到ArrayList替換舊的項目,我有相同的數據

ArrayList<HashMap<String, String>> items = new ArrayList<>(); 
HashMap<String, String> item = new HashMap<>(); 

for (int p = 0; p < allFoodBean.size(); p++) { 
    if (allFoodBean.get(p).getItemId().equals("food1")) { 
     item.put("id", allFoodBean.get(p).getId()); 
     item.put("name", allFoodBean.get(p).getName()); 
     items.add(item); 
    } 
} 

問題在這行代碼將數據添加到itemsitems.add(item); 我怎樣才能解決這個問題呢?

+0

ü可以發佈您的allFoodBean – Anil

回答

1

在for循環中移動項目初始化。

有它初始化之外將繼續在for循環添加食品豆同一項目Map實例,最後你會在,而不必多次的ArrayListMap對象ArrayList的單品Map項目。

ArrayList<HashMap<String, String>> items = new ArrayList<>(); 

for (int p = 0; p < allFoodBean.size(); p++) { 
    if (allFoodBean.get(p).getItemId().equals("food1")) { 
     HashMap<String, String> item = new HashMap<>(); 
     item.put("id", allFoodBean.get(p).getId()); 
     item.put("name", allFoodBean.get(p).getName()); 
     items.add(item); 
    } 
} 
+0

感謝,問題解決了,請讓我接受你的帖子 –

+0

NP,很高興幫助,請點擊複選標記接受答案:) – JRG

+0

是的,但我必須等一會兒讓SF讓我接受;) –

2

試試這個

ArrayList<HashMap<String, String>> items = new ArrayList<>(); 
HashMap<String, String> item = null; 

for (int p = 0; p < allFoodBean.size(); p++) { 
    if (allFoodBean.get(p).getItemId().equals("food1")) { 
     item = new HashMap<>(); 
     item.put("id", allFoodBean.get(p).getId()); 
     item.put("name", allFoodBean.get(p).getName()); 
     items.add(item); 
    } 
} 

當過,如果條件爲假創建new HashMap<>()

相關問題