仅在一个活动中访问标题栏中的按钮

问题描述:

我有一个自定义标题栏和我正在使用的TabHost布局。 TabHost有4个标签,具有不同的活动。我在标题栏中添加了一个ImageButton,但我只希望它在其中一个活动中处于活动状态。有人可以告诉我该怎么做吗?仅在一个活动中访问标题栏中的按钮

此外,如果我在标题栏xml中定义按钮,那么可以吗?

想到的一种方法是将监听器设置为选项卡按钮,以便您始终知道您所在的选项卡。如果其正确,则在该按钮上设置可见性(0),否则设置为可见性(8)。 虽然可能有更简单的方法。

+0

你能给我一个样本代码片段吗? – 2012-08-16 16:21:38

+0

这可能不是最理想的方法,但它确实有效! – 2012-08-16 16:25:13

+0

我现在没有什么在这里,检查此:http://www.androidadb.com/class/android/widget/TabHost/OnTabChangeListener.java.html 你可以听,如果一个特殊的标签被击中,然后设置可见性在按钮上。 – FWeigl 2012-08-16 16:26:05

myTabHost.setOnTabChangedListener(new OnTabChangeListener() { 
    @Override 
    public void onTabChanged(String tabId) { 
    if (tabId =="yourTabId") { 
     yourButton.setVisibility(View.VISIBLE); 
    } 
    else 
    { 
     yourButton.setVisibility(View.INVISIBLE); 
    } 
    } 
}); 
+0

太神奇了:)谢谢!你能不能也请告诉我如何使按钮调用一个方法在我希望它显示的标签中?目前它在标签初始化的主要活动中调用一个方法。该按钮的目的是在第二个活动中的两个视图之间切换。 – 2012-08-16 16:40:54

+0

绝对受欢迎: - }但是,您可以添加一些代码,以便我可以了解需要发生的事件序列吗? – 2012-08-16 18:12:42

+0

因此,本质上我有一个ViewSwitcher,里面有一个ListView和一个MapView(隐藏的MapView)。在按下按钮时,应该隐藏列表视图(可能会有一些转换),并显示地图。另外,我想根据显示的两个视图中的哪一个来更改按钮图像。 – 2012-08-16 23:44:15