gpt4 book ai didi

android - 清除后如何在 arraylist 中检索项目 : Android

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:49 25 4
gpt4 key购买 nike

我有一个显示公司列表的数组列表。这些公司中的每一个都有相应的城镇名称。此外,我正在为每个城镇名称创建按钮,这样当我单击任何城镇名称时,ArrayList 应该被过滤并且只显示具有该城镇名称的公司。

按钮就像,

    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,然后以类似的方式将其过滤掉。

我已经对此进行了研究,但找不到任何相关内容。我也尝试过链接中提到的解决方案:

然而,这并没有帮助。谁能帮助我如何实现这一目标?

最佳答案

@Traxdata 回答正确。这是我在代码中的解释

修改你的适配器

public class YourAdapter extends RecyclerView.Adapter {

YourAdapter(List<CompanySearchResult> filterList){

}
}

在你的Activity

YourAdapter listAdapter = new YourAdapter(filterList);

第一次显示列表

filterList = new ArrayList<>(tempList);
listAdapter.notifyDataSetChanged();

过滤时

ArrayList < CompanySearchResult > filtered = new ArrayList < CompanySearchResult > ();
for (CompanySearchResult town: tempList) {
if (town.getTownName().equals(name)) {
filtered.add(town);
}
}

filterList.clear();
filterList.addAll(filtered);
listAdapter.notifyDataSetChanged();

关于android - 清除后如何在 arraylist 中检索项目 : Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45606358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com