如何在 Android 选项卡之间进行通信

Posted

技术标签:

【中文标题】如何在 Android 选项卡之间进行通信【英文标题】:How to communicate between Android tabs 【发布时间】:2010-11-08 11:55:39 【问题描述】:

我正在尝试为我的 android 应用程序设置一些选项卡,但我卡住了。

我找不到在选项卡之间进行通信的方法..

我有 2 个标签。


|搜索|结果|

搜索选项卡只是显示一个文本编辑和一个“搜索”按钮。 点击搜索按钮应该会使我的应用更改为结果选项卡并显示结果。

我已将选项卡添加为活动,使用新意图作为

TabHost host=getTabHost();  

host.addTab(host.newTabSpec("one")  
   .setIndicator("Search")  
   .setContent(new Intent(this, SearchTabActivity.class)));  
host.addTab(host.newTabSpec("Result")  
   .setIndicator("Android")  
   .setContent(new Intent(this, ResultTabActivity.class)));  

现在我找不到 SearchTabActivity 显示 ResultTabActivity 并更改其视图的方法...

我期待任何提示。

【问题讨论】:

我推荐使用 SearchManager:developer.android.com/reference/android/app/SearchManager.html 我建议不要将活动用作标签内容。 【参考方案1】:

肯定想重新考虑使用活动作为选项卡的内容。更标准的方法是使用一个使用选项卡的 Activity,仅在选择特定选项卡时显示部分布局。

Android 文档中有一个很好的示例,请查看 Hello, TabWidget。

替代方案

如果出于某种原因您确实需要使用活动,您可以通过将值添加到用于打开每个活动的 Intent 中的附加包,或通过扩展 Application 类来在它们之间传递信息。

通过扩展 Application 类(并将其实现为 Singleton),您将获得一个在任何应用程序组件存在时都会存在的对象,从而提供一个集中的位置来存储和在应用程序组件之间传输复杂的对象数据。

【讨论】:

还是这样吗?您应该肯定要重新考虑将活动用作选项卡的内容。?我正在使用的应用程序有四个选项卡、2 个列表视图、1 个地图视图和 1 个信息滚动视图... 是的,您可以使用 listfragments 并且可以将滚动视图放置在另一个片段中。地图视图可能有点棘手,我以前没有使用过它们,但this answer 应该会有所帮助。

以上是关于如何在 Android 选项卡之间进行通信的主要内容,如果未能解决你的问题,请参考以下文章

您如何在两个浏览器选项卡/窗口之间进行通信? [复制]

您如何在两个浏览器选项卡/窗口之间进行通信? [复制]

使用 JavaScript 在窗口/选项卡之间进行通信 [重复]

在没有窗口参考的选项卡dom之间进行通信[重复]

如何在 Android 和 TI BLE CC2541 之间发送文本?

在选项卡之间切换时如何创建交叉溶解动画