【发布时间】:2017-08-08 09:40:25
【问题描述】:
我有一个显示公司列表的数组列表。这些公司中的每一个都有与之相关的城镇名称。我所做的是为每个城镇名称创建按钮,这样当我单击任何城镇名称时,应过滤 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) {
locationFilter(stringList,length);
}
});
为了过滤数据,我正在创建一个新的 ArrayList 来存储过滤后的数据,例如,
ArrayList<CompanySearchResult> secondList = new ArrayList<CompanySearchResult>();
for (CompanySearchResult a : tempList) {
for (int k = 0; k < length; k++) {
if (a.getTownName.equalsIgnoreCase(stringList.get(k))) {
secondList.add(a);
}
}
}
tempList.clear();
tempList.addAll(secondList);
我实际上要做的是在单击按钮时根据城镇名称过滤临时列表。
我对此进行了研究,但无法解决此问题。谁能告诉我我做错了什么以及如何过滤列表。
【问题讨论】:
-
您的哪个列表实际上填充了列表视图? TempList 或任何其他列表?
-
tempList 填充视图。
-
那么在做完 addAll 之后你有没有调用 notifyDataSetChanged() 方法?
-
是的,我已经这么称呼了。
-
在记录 tempList 时,我得到类似 CompanySearchResult@ada6a87:log 的信息。我不太确定它是什么。请耐心等待我是android新手,
标签: java android arraylist android-filter