【问题标题】:how to call method another activity inside tabhost from current adapter如何从当前适配器调用方法在 tabhost 中的另一个活动
【发布时间】: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


【解决方案1】:

嗨, 在您的适配器中,如果您的应用程序获取的上下文来自 Activity A 假设并且您想要刷新 Activity C 中的 Spinner 内容,您可以将您的代码放在 Activity C 的 onResume() 方法中,或者用于绑定 Spinner 的适配器中活动 C。为此,您可以创建一个具有所需更改的静态方法,并首先在 Activity A 的适配器类中更新它。然后更改以重新加载带有一些随机列表/数据的微调器,这些随机列表/数据已在适配器中更新Activity A 可以直接在 Activity C 的适配器或 Activity C 的 onResume() 方法中使用。否则,您可以创建一个包含更新数据的列表并将其绑定到 Activity A 的适配器中,然后在 Activity C 的 onResume() 方法中填充它将上下文传递给它。

【讨论】:

  • 已经在Activity C的onResume中放了方法刷新微调器,但是什么也没发生
  • 我可以获取您在方法中用于刷新或重新加载 Spinner 的代码吗?
猜你喜欢
  • 2011-10-20
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
相关资源
最近更新 更多