android - android ExpandableListView 中的搜索实现仅显示不为空的结果组

标签 android mysql expandablelistview

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

现在我想实现 SearchView 多亏了它我才能搜索特定的城市。棘手的是,当我搜索时,我只想显示相关城市所在的组(国家)。我不想显示空组。

现在我的主要 Activity 中有国家/地区的 Loader,结果数据从那里插入到我正在加载城市的 CursorTreeAdapter 实现中。目前我只找到thisExpandlableListView 中搜索的博客,但没有实现任何隐藏空组的机制。

这就是我的表格的样子

Countries table
|ID|Name

City table
|ID|countryID|Name

有人知道如何实现吗?

最佳答案

一个简单的解决方案是在基地行动..

您可能会从 db 返回仅具有关联城市的那些组,并带有连接子句:

select co.* 
from Countries co 
inner join City c on (co.ID = c.countryID)

但是如果你听起来不是个好主意..

另一个解决方案是检查行在适配器 MyListAdapter 的方法 getGroupView 中的可见性(我指的是示例的 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;
}

否则...

阅读类似的帖子:

ExpandableListView is showing indicator for groups with no child

bindGroupView中检查是否有子元素并将信息保存在对象 View 的标签上, 然后 newChildView 接受标签,获得可见性并使 View 可见或不可见(如我之前所说)

关于android - android ExpandableListView 中的搜索实现仅显示不为空的结果组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23854301/

相关文章:

android - 是否将testCompile和androidTestCompile依赖项放入内置的APK中?

android - SVG 图像无法在 android phonegap 项目的 div 内正确显示

php - 按自定义顺序订购多个字段,最后为空字段

mysql - 删除 Mysql 值

java - 如何为每个节点指定唯一的名称

java - 如何在Firestore中组织相关的时间和固定数据?

android - 如何获取网络状态?

php - Laravel 条件关系

android - ExpandableListView 扩展 View 未显示

user-interface - 如何在黑莓中创建可扩展的 ListView