我有一個顯示公司列表的數組列表。這些公司中的每一個都有相應的城鎮名稱。此外,我爲每個城鎮名稱創建按鈕,以便當我點擊任何城鎮名稱時,應該過濾ArrayList,並且只應顯示具有該城鎮名稱的公司。如何清除列表清單中列出的項目:Android
的按鈕都喜歡,
stringList.add(tempList.get(n).getTownName());
btnTag.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 60));
btnTag.setText(stringList.get(k));
btnTag.setBackgroundResource(R.drawable.alpha_button_selector);
btnTag.setClickable(true);
townLayout.addView(btnTag);
單擊按鈕時,我取的按鈕上的文本,因爲它顯示了小鎮的名字,然後我打電話來過濾數據的方法,
btnTag.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CharSequence name = btnTag.getText();
locationFilter(name);
}
});
用於過濾的數據,我創建一個新的ArrayList來存儲經濾波的數據,例如,
ArrayList<CompanySearchResult> filtered = new ArrayList<CompanySearchResult>();
for (CompanySearchResult town : tempList) {
if (town.getTownName().equals(name)) {
filtered.add(town);
}
}
tempList.clear();
tempList.addAll(filtered);
listAdapter.notifyDataSetChanged();
數據正在過濾正確,但我的問題是當我第一次過濾數據時,我的tempList(這是包含數據的主ArrayList)被過濾的ArrayList的內容更新。 然後,當我點擊另一個城鎮名稱的第二個按鈕並嘗試過濾它時,它會嘗試過濾已經使用過濾數據更新的tempList,並且顯示的結果爲空。
因此,每次點擊一個帶有城鎮名稱的按鈕時,如何再次使用原始數據填充我的tempList,然後以類似的方式對其進行過濾。
我已經研究過這個,但是找不到任何相關的東西。我也曾嘗試在鏈接中提到的解決方案:
android filter custom array adapter and bring back old items again
How can i take a backup of an ArrayList in Java after i call .clear()?
然而,這並沒有幫助。任何人都可以請幫助我如何實現這一目標?
可以共享方法你實際創建/提取tempList? – kulvinder
我正在使用光標在tempList中添加項目。 – devgeek
還創建一個更多的列表他們完全相同像tempList例如mainList,並把tempList到該mainList.addAll(tempList),然後使用它..(CompanySearchResult鎮:mainList) – kulvinder