2011-10-31 30 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; 
} 
相關問題