【发布时间】:2011-02-04 01:08:09
【问题描述】:
我有一个 TabActivity 类,它使用 Intents 填充内容视图。在某些情况下,我想拦截一个选项卡选择事件,弹出一个消息对话框,抑制选择的 Intent,并恢复到原来选择的选项卡。
我希望 TabActivity 内容保持 Intent 驱动(而不是使用视图)。
我怀疑这可能需要扩展 LocalActivityManager。
有没有人做过这个或做过类似的事情?
// simple example of current code:
TabHost tabHost = getTabHost();
TabSpec ts = tabHost.newTabSpec(tag);
ts.setIndicator(tabview);
ts.setContent(new Intent().setClass(this, AHome.class));
tabHost.addTab(ts);
谢谢!
【问题讨论】:
-
“我希望 TabActivity 内容保持 Intent 驱动(而不是使用视图)”——为什么?
-
@CommonsWare:因为我希望内容视图包含一个活动而不是一个视图。活动已经针对其内容进行了构建。它们本质上是 MVC 中的控制器。
-
“活动已经针对其内容构建。它们本质上是 MVC 中的控制器。” -- MVC 在 Android 发明之前就已经存在。您甚至可以在 Wikipedia 中查看这些技术的日期。因此,根据定义,可以在没有活动的情况下进行 MVC。您使用这些称为“类”的神奇事物。相反,您将浪费堆栈空间、堆空间、CPU 时间和电池寿命,只是为了以活动的形式组织代码。
-
@CommonsWare:我很清楚 MVC 早于 Android 并且活动比简单的自定义类更重。假设我出于多种原因之一将它们作为活动(例如,将它们发布以在另一个应用程序的 Activity 堆栈上使用,或者我希望另一个应用程序的 Activity 在我自己的堆栈上使用)......但这不是重点。
标签: android android-tabhost tabactivity