在 TabActivity 的单个选项卡中重新启动活动?

发布于 2024-08-25 05:12:59 字数 161 浏览 2 评论 0 原文

我有一个 TabActivity。每个选项卡都指向一个子活动。这很好用。

有没有什么聪明的方法来刷新活动选项卡之一?例如,我只想“重新启动”选项卡 #3 中的活动。除了构建对活动本身的刷新支持,或清除所有选项卡并重新创建所有选项卡之外,不确定是否有好方法来执行此操作。

谢谢,

I have a TabActivity. Each tab point to a sub activity. This works great.

Is there any clever way to refresh one of the activity tabs? I just want to 'restart' the activity in tab #3 for example. Not sure of a good way to do this other than building in refresh support to the activity itself, or clearing ALL the tabs and recreating all of them.

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

撩心不撩汉 2024-09-01 05:12:59

稍微更动态的解决方案:

LocalActivityManager manager = getLocalActivityManager();
String currentTag = tabHost.getCurrentTabTag();
Class<? extends Activity> currentClass = manager.getCurrentActivity().getClass();
manager.destroyActivity(currentTag, true);
manager.startActivity(currentTag, new Intent(this, currentClass));

Slightly more dynamic solution:

LocalActivityManager manager = getLocalActivityManager();
String currentTag = tabHost.getCurrentTabTag();
Class<? extends Activity> currentClass = manager.getCurrentActivity().getClass();
manager.destroyActivity(currentTag, true);
manager.startActivity(currentTag, new Intent(this, currentClass));
以歌曲疗慰 2024-09-01 05:12:59

我自己没有尝试过,但通常您可以使用 LocalActivityManager。可以使用 TabActivity 中检索此信息="nofollow noreferrer">getLocalActivityManager()

看起来您应该能够使用 destroyActivity()startActivity() 来重新启动 Activity,尽管我不确定这是否有效(因为我'我自己没做过)。需要注意的一件重要事情是,活动的 id 将等于您为选项卡设置的标签(例如,您提供给 TabHost.newTabSpec(String) 的字符串) >)。

LocalActivityManager manager = getLocalActivityManager();
manager.destroyActivity("tab3", true);
manager.startActivity("tab3", new Intent(this, ThirdTab.class));

I've not tried this myself, but typically you access each individual tab's Activity using the LocalActivityManager. This can be retrieved in a TabActivity by using getLocalActivityManager().

It looks like you should be able to use destroyActivity() and startActivity() to restart an Activity, though I'm not exactly sure if this will work (as I've not done it myself). One important thing to note is that the id of the Activity will be equivalent to the tag you set for the tab (e.g., the String you provided to TabHost.newTabSpec(String)).

LocalActivityManager manager = getLocalActivityManager();
manager.destroyActivity("tab3", true);
manager.startActivity("tab3", new Intent(this, ThirdTab.class));
故事与诗 2024-09-01 05:12:59

这是解决方案:

tabHost.setOnTabChangedListener(this);
public void onTabChanged(String tabId) {
        Log.d(LOG_KEY, tabId);
        LocalActivityManager manager = getLocalActivityManager();
        manager.destroyActivity("ID_1", true);
        manager.startActivity("ID_1", new Intent(this, YourMyActivity.class));
    }

Here is the solution:

tabHost.setOnTabChangedListener(this);
public void onTabChanged(String tabId) {
        Log.d(LOG_KEY, tabId);
        LocalActivityManager manager = getLocalActivityManager();
        manager.destroyActivity("ID_1", true);
        manager.startActivity("ID_1", new Intent(this, YourMyActivity.class));
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文