2011-10-31 59 views
0

我有TabActivity MainTab和我所有的活动延伸BasicActivity。在BasicActivity我做了所有活动相同的菜单。如何从活动访问TabHost,即不是其中一个选项卡?

如何访问TabHost从BasicActivity在项目菜单上点击活动不是其中一个选项卡时?

现在我使用TabHost tabHost =(TabHost)getParent()。findViewById(android.R.id.tabhost); 但它只会在活动是标签之一时才起作用。

public class BasicActivity extends FragmentActivity { 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.m_main, menu); 
    return true; 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){ 
    case R.id.stad: 
     TabHost tabHost = (TabHost) getParent().findViewById(android.R.id.tabhost); 
     tabHost.setCurrentTab(4); 
    break; 
    default: 
     return false;  
    } 
    return true; 
} 
} 

回答

1

创建您TabHost一个 “单身”,并与TabHost.getTabHost()访问它

private static TabHost tabHost; 

protected void onCreate (Bundle savedInstanceState) { 
    ... 
    tabHost = this; 
    ... 
} 

public static TabHost getTabHost() { 
    return tabHost; 
} 
相关问题