【发布时间】:2015-04-28 14:55:19
【问题描述】:
我有一个包含 3 个活动 A、B、C 的 tabhost
活动 A 有一个带有当前适配器的列表视图,然后在适配器内部我做了一个 sqlite 插入,然后在活动 C 中也有一个带有另一个适配器的微调器列表视图。在活动 C 中,我添加了刷新微调器内容的方法以及 onResume() 方法,其中包含刷新微调器内容。如果我确实从活动 A 的列表视图适配器插入,微调器没有得到任何更改(我希望它可以从 onResume() 中获取更改,因为有一些代码可以刷新微调器内容),但什么也没发生。另外,如果我使用以下代码调用刷新微调器内容的方法:
Context mycontext;
((Activity C) mycontext).RefreshSpinner();
然后什么也没发生。那么我该如何解决这个问题呢?我用两种方法做到了。提前致谢。
【问题讨论】:
-
我会建议你应该使用 FragmentTabHost 而不是 TabHost,并且 Fragments 而不是 activity 对于每个选项卡的 contentview。当单击特定选项卡时,您的活动中有 TabClickListnener 来告诉片段使用任何接口刷新视图。
-
1.有一个带有 reload() 方法的接口。在第三个Activity/Fragment中实现接口。 2. When tab is click check for third tab and call the reload() method. 3.在reload方法里面调用你的逻辑来重新加载数据
-
但是我一直在使用tabhost,所以我需要时间重新构建我的应用程序,您还有其他解决方案吗?谢谢
-
有一个,但我不推荐这是一个好的解决方案。 1. 在你的根活动中实现 tabclick 监听器。 2. 单击第三个选项卡时,发送本地广播意图。 3. 在你的第三个活动中注册一个广播接收器并监听这个意图。收到广播后,重新加载数据。如果您不熟悉广播,请参阅教程
标签: android methods refresh spinner adapter