我有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;
}
}
答案 0 :(得分:1)
在TabHost中创建一个“singleton”并使用TabHost.getTabHost()
访问它private static TabHost tabHost;
protected void onCreate (Bundle savedInstanceState) {
...
tabHost = this;
...
}
public static TabHost getTabHost() {
return tabHost;
}