Android如何使tabhost的选项卡作为按钮运行

时间:2013-07-11 16:40:23

标签: android android-tabhost android-tabs

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

正如您所看到的,我将标签的内容设置为按钮,但它不是我所期望的。 我想要一个普通的标签,它显示一个Dialog而不被选中。

您对如何继续有任何想法吗?

提前致谢! :)

1 个答案:

答案 0 :(得分: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