Как получить доступ к TabHost из активности, которая не является одной из вкладок? - PullRequest
0 голосов
/ 31 октября 2011

У меня есть TabActivity MainTab и все мои действия расширяются BasicActivity . В BasicActivity я сделал одно и то же меню для всех видов деятельности.

Как получить доступ к 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 Ответ

1 голос
/ 31 октября 2011

Создайте «синглтон» в вашем TabHost и получите к нему доступ с помощью TabHost.getTabHost ()

private static TabHost tabHost;

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

public static TabHost getTabHost() {
   return tabHost;
}
...