在android ExpandableListView中搜索实现,它只显示非空结果组

时间:2014-05-25 10:26:29

标签: android mysql expandablelistview

我目前正在使用ExpandableListView使用CursorTreeAdapter提供的游标制作应用。在我的数据库中,我有这些国家的国家和城市。

现在我想实施SearchView,感谢我能够搜索特定的城市。棘手的是,当我搜索时,我想只显示相关城市所在的群组(国家/地区)。我不想显示空组。

目前我在我的主要活动中有Loader个国家/地区,并且从那里将结果数据插入我正在加载城市的CursorTreeAdapter实施中。目前我只在ExpandlableListView中找到了只有this博客的搜索,但是没有实现隐藏空组的任何机制。

这就是我的表格的样子

Countries table
|ID|Name

City table
|ID|countryID|Name

有没有人知道如何实现它?

1 个答案:

答案 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接受标签,获取可见性并使视图可见或不可见(正如我之前所说)