我需要从子活动中隐藏TabHost的标签。我试过getParent()
但它没有用
也尝试过:
TabHost th = (TabHost) ((TabsActivity)getBaseContext()).findViewById(android.R.id.tabhost);
th.setVisibility(View.INVISIBLE);
但它会抛出一个nullpointer
答案 0 :(得分:1)
永远不要从当前Views
直接访问其他Activities
拥有的Activity
,因为它们可能在此期间被回收(因为其他Activity
可能已被销毁在此期间。)
您需要以标准方式与其他Activity
进行通信。例如,您的孩子Activity
可以将结果返回给父Activity
,然后它可以解释(您可以将值放到Intent
)。另一个解决方案是使用一个静态变量,但这不是太好,如果你不够小心就有风险。
答案 1 :(得分:0)
您将无法直接操作当前不在前台的活动的视图层次结构,因为它可能已暂停并停止,在这种情况下,其UI已被销毁,并且在其之前不会重建回到前台。您应该考虑Activity生命周期中发生的事情,以帮助您解决此问题。一个快速而肮脏的解决方案可能是托管选项卡的Activity有一个可由其他活动设置的公共静态变量;这样当它恢复在前台运行时,它可以检查该变量并根据需要使视图可见