我目前正在使用ExpandableListView
使用CursorTreeAdapter
提供的游标制作应用。在我的数据库中,我有这些国家的国家和城市。
现在我想实施SearchView
,感谢我能够搜索特定的城市。棘手的是,当我搜索时,我想只显示相关城市所在的群组(国家/地区)。我不想显示空组。
目前我在我的主要活动中有Loader
个国家/地区,并且从那里将结果数据插入我正在加载城市的CursorTreeAdapter
实施中。目前我只在ExpandlableListView
中找到了只有this博客的搜索,但是没有实现隐藏空组的任何机制。
这就是我的表格的样子
Countries table
|ID|Name
City table
|ID|countryID|Name
有没有人知道如何实现它?
答案 0 :(得分:1)
一个简单的解决方案是在基地采取行动..
您可能从db返回只返回具有关联城市的组,并带有join子句:
select co.*
from Countries co
inner join City c on (co.ID = c.countryID)
但如果你听起来不是个好主意..
另一个解决方案是检查行对getGroupView
方法MyListAdapter
的可见性(我指的是示例的blog)
@Override
public View getGroupView(int groupPosition, boolean isLastChild, View view, ViewGroup parent) {
...
view.setVisibility((continent.getCountryList().size() == 0) ? View.GONE : View.VISIBLE);
...
return view;
}
ELSE ...
阅读类似的帖子:
ExpandableListView is showing indicator for groups with no child
在bindGroupView
中检查是否有子元素并将信息保存在对象视图的标签上,
然后newChildView
接受标签,获取可见性并使视图可见或不可见(正如我之前所说)