2013-07-11 3 views
0

Я хотел бы создающих вкладку tabhost, которая ведет себя как кнопки, чтобы отобразить диалоговоеAndroid, как сделать вкладку tabhost ведет себя как кнопка

Вот мой текущий код:

public class MainActivity extends FragmentActivity { 

     private FragmentTabHost mTabHost; 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.tabhost); 

      mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost); 
      mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); 

      mTabHost.addTab(mTabHost 
      .newTabSpec("Critères") 
      .setIndicator(LayoutInflater.from(this).inflate(R.layout.button_tabs_bg, null)), 
      MyDialogFragment.class, null); 

      mTabHost.addTab(mTabHost 
      .newTabSpec("Map") 
      .setIndicator("Map"), 
      MyMapFragment.class, null); 
     } 
} 

Как вы можете см. Я устанавливаю содержимое вкладки как кнопку, но это не то, что я ожидаю. Я просто хочу обычную вкладку, которая отображает диалог без выбора.

У вас есть идеи, как действовать?

Заранее благодарен! :)

ответ

1

Вы можете добавить на вкладке изменился слушатель в tabhost

mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() { 
    @Override 
     public void onTabChanged(String tabId) { 
      // build dialog and show 
     } 
    } 
}); 

По вашему дополнительному запросу. У вас есть варианты:

  1. Расширить класс Tabhost и переопределить метод setCurrentTab - таким образом вы можете прекратить выполнение нового фрагмента.
  2. Добавить OnClick/ouTouch слушателя для каждой вкладки отдельной и остановиться на одном нежелательном: https://stackoverflow.com/a/10192064/503127
+0

Он работает, но tabhost почти делать то, что он ожидал. Я могу просто добавить вещи. Есть ли другой способ? – nsvir

+0

Не могли бы вы рассказать немного? Что означает «табуст почти сделать то, что он ожидал»? –

+0

Свойство tabhost заключается в замене фрагмента другим при нажатии вкладок. Ваше решение помогло мне добавить такое поведение, как отображение диалогового окна. Но я хочу запретить tabhost заменить фактический фрагмент при нажатии. – nsvir

Смежные вопросы