在Tabhost选项卡上,单击show popup

时间:2012-10-31 23:01:55

标签: android tabs

我需要创建具有三个选项卡的应用程序。第一个选项卡是MapViewActivity,第二个选项卡是搜索。

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_tab);

    tabHost = getTabHost();
    resources = getResources();

    AddTab(resources.getString(R.string.tab_tag1),
            R.drawable.icon_tab1, MapViewActivity.class);

    AddTab(resources.getString(R.string.tab_tag2),
            R.drawable.icon_tab2, MapViewActivity.class);

    AddTab(resources.getString(R.string.tab_tag3), R.drawable.icon_tab3,
            MapViewActivity.class);     
}

private void AddTab(String tabName, int idPhoto, Class className) {
    TabSpec tabspec = tabHost.newTabSpec(tabName);
    tabspec.setIndicator(tabName, getResources().getDrawable(idPhoto));
    Intent intent = new Intent(this, className);
    tabspec.setContent(intent);
    tabHost.addTab(tabspec);
}

但是当有人选择第二个标签(搜索)时,我想在第一个标签内容中显示弹出窗口。 可能吗?你有一些例子吗?

1 个答案:

答案 0 :(得分:1)

在您的代码中添加此

getTabWidget().getChildAt(1).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            tabHost.setCurrentTab(0);
            Toast.makeText(getApplicationContext(), "Clicked", 35).show();
            // Add pop up code here
        }
});

所以它应该喜欢这个

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_tab);

    tabHost = getTabHost();
    resources = getResources();

    AddTab(resources.getString(R.string.tab_tag1),
            R.drawable.icon_tab1, MapViewActivity.class);

    AddTab(resources.getString(R.string.tab_tag2),
            R.drawable.icon_tab2, MapViewActivity.class);

    AddTab(resources.getString(R.string.tab_tag3), R.drawable.icon_tab3,
            MapViewActivity.class);
    getTabWidget().getChildAt(1).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            tabHost.setCurrentTab(0);
            Toast.makeText(getApplicationContext(), "Clicked", 35).show();
            // Add pop up code here
        }
    });
}

编辑2: 你可以用

getTabWidget().getChildAt(1).setOnClickListener(this);

OR

getTabWidget().getChildAt(1).setOnClickListener(someListener);