我有一個ArrayList包含元素(字段是名稱和類型)。只有兩種不同的可能類型(「edu」和「ent」),我希望每個類型都可以在其自己的列表視圖中顯示。過濾器ArrayList並刪除不需要的元素
我的想法是通過每個創建具有相同的數據,然後循環兩個新的ArrayList和過濾不需要的元素是這樣的:
ListView listView_ent = (ListView) findViewById(R.id.popular_apps_list_ent);
ArrayList<DataHolder> data_ent = data;
for (int i = 0; i < data_ent.size(); i++) {
if(data_ent.get(i).getType().equals("edu")){
data_ent.remove(i);
}
}
listView_ent.setAdapter(new AppsAdapter(this, data_ent));
ListView listView_edu = (ListView) findViewById(R.id.popular_apps_list_edu);
ArrayList<DataHolder> data_edu = data;
for (int i = 0; i < data_edu.size(); i++) {
if(data_edu.get(i).getType().equals("ent")){
data_edu.remove(i);
}
}
listView_edu.setAdapter(new AppsAdapter(this, data_edu));
有在ArrayList的10個元素,每一種類型的5。
問題是,在兩個列表視圖的最後,有4個相同的項目以混合類型顯示。
任何想法我做錯了什麼?
你有沒有探究[http://stackoverflow.com/questions/2250770/how-to-refresh-android-listview][1] ?? [1]:http://stackoverflow.com/questions/2250770/how-to-refresh-android-listview – Elorry
我沒有嘗試刷新列表視圖。如果我檢查循環中發生了什麼,我可以看到由於某種未知的原因,ArrayList沒有正確過濾。 – Soriyyx