1

我需要从子活动中隐藏 TabHost 的选项卡。我试过getParent()了,但没有用

也试过:

TabHost th = (TabHost) ((TabsActivity)getBaseContext()).findViewById(android.R.id.tabhost);
        th.setVisibility(View.INVISIBLE);

但它抛出一个空指针

4

2 回答 2

1

永远不要从 current直接访问Viewsother 拥有的,因为它们可能在此期间被回收(因为其他可能在此期间被破坏)。ActivitiesActivityActivity

你需要以Activity标准的方式与对方沟通。例如,您的孩子Activity可以将结果返回给父母Activity,然后它可以解释(您可以将值放入Intent)。另一种解决方案是使用静态变量,但这不太好,如果你不够小心,会有风险。

有关活动之间通信的更多信息,请参阅thisthis

于 2012-11-01T20:02:31.843 回答
0

您将无法直接操作当前不在前台的 Activity 的视图层次结构,因为它可能会被暂停和停止,在这种情况下,它的 UI 已经被破坏并且不会被重建,直到它返回前景。你应该考虑在 Activity 生命周期中发生了什么来帮助你解决这个问题。一个快速而肮脏的解决方案可能是托管选项卡的 Activity 有一个可以由其他 Activity 设置的公共静态变量;这样当它恢复在前台运行时,它可以检查该变量并根据需要使视图可见或不可见

于 2012-11-01T19:54:04.047 回答