0

我想创建一个 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);
        }   
}

如您所见,我将选项卡的内容设置为看起来像一个按钮,但这不是我所期望的。我只是想要一个正常的选项卡,它显示一个没有被选中的对话框。

你有什么想法如何进行吗?

提前致谢!:)

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 回答