如何从活动中访问TabHost,这不是其中一个标签?

时间:2011-10-31 15:41:41

标签: android menu android-tabhost tabactivity

我有TabActivity MainTab ,我的所有活动都扩展为 BasicActivity 。在 BasicActivity 中,我为所有活动制作了相同的菜单。

当项目菜单中的某个选项卡之一时,如何从项目菜单上的 BasicActivity 访问TabHost?

现在我正在使用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 个答案:

答案 0 :(得分:1)

在TabHost中创建一个“singleton”并使用TabHost.getTabHost()

访问它
private static TabHost tabHost;

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

public static TabHost getTabHost() {
   return tabHost;
}