筛选ViewPager Fragment中的ListView

5
我最近将我的应用程序从使用Activites和TabHost转换为使用Android Compat Library for API v4中的Fragments和ViewPager。我已经解决了大部分问题,但是无法保留使用setTextFilterEnabled方法在ListViews中筛选文本的先前行为。
我的ViewPagerAdapter包含每个都有一个ListView的Fragment。当用户通过ViewPager滑动时,我希望当前活动的Fragment的ListView能够像使用TabHost-Activity模型一样随着用户输入而过滤文本。目前,看起来第一个Fragment的ListView将正确响应,但是如果我滑动到下一个Fragment并尝试过滤它的ListView,则过滤仍将应用于第一个Fragment。如果我滑过前两个然后进行过滤,结果是不确定的。当前活动的Fragment将永远不会应用该过滤器。有时相邻的片段会,有时不会。
我尝试通过添加自定义回调来解决此问题,这些回调让我可以监控当前可见的片段和隐藏的片段。 当一个片段成为ViewPager的主要片段时,我将其ListView上的setTextFilterEnabled设置为true,并将其他所有片段设置为false。 但这似乎没有什么帮助(我验证了我正在正确切换标志的右侧片段)。
我怀疑这需要与ViewPager进行更深入的集成,但我无法弄清楚我需要连接什么。 有什么想法吗? 如有必要,我很乐意修改ACL代码。

如果您能发布您之前和现在所做的相关片段,那将有助于我们了解您的编程经验。请提供文本内容的翻译,不要进行解释。 - Rafael T
1个回答

0
你可以通过扩展 OnPageChangeListener 并实现 onPageSelected 方法来实现。也许你已经这样做了。从那里,你可以将适配器设置为当前的 ListView 或者重新查询你的 CursorAdapter(如果是这种情况)。请注意,所使用的适配器必须实现 Filterable 接口。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接