0

ダイアログを表示するボタンとして動作するタブホストのタブを作成したい

これが私の現在のコードです:

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);
        }   
}

ご覧のとおり、タブのコンテンツをボタンのように設定しましたが、期待どおりではありません。選択せずにダイアログを表示する通常のタブが必要です。

続行する方法について何か考えはありますか?

前もって感謝します!:)

4

1 に答える 1

1

タブ変更リスナーをタブホストに追加できます

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
于 2013-07-11T16:44:26.673 に答える