Android 如何在单击选项卡Activity的选项卡而不是调用Activity时调用函数

Android 如何在单击选项卡Activity的选项卡而不是调用Activity时调用函数,android,tabactivity,Android,Tabactivity,对不起我的英语。要学的东西很多 我的应用程序中有一个TabActivity。我希望其中一个按钮在单击时显示上下文菜单 我设法在单击其中一个选项卡时调用了一个方法。但同时选项卡调用和活动。这一个关闭了当前的一个,它没有留下好印象 例如: 将选项卡添加到tabhost intent = new Intent().setClass(this, NewsActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); spec = tab

对不起我的英语。要学的东西很多

我的应用程序中有一个TabActivity。我希望其中一个按钮在单击时显示上下文菜单

我设法在单击其中一个选项卡时调用了一个方法。但同时选项卡调用和活动。这一个关闭了当前的一个,它没有留下好印象

例如:

将选项卡添加到tabhost

    intent = new Intent().setClass(this, NewsActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    spec = tabHost.newTabSpec(TAB_NEWS).setIndicator(getString(R.string.tab_news), res.getDrawable(R.drawable.ic_tab_news)).setContent(intent);
    tabHost.addTab(spec);
如果我没有通过,意图就会出错

    intent = new Intent().setClass(this, NewsActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    spec = tabHost.newTabSpec(TAB_NEWS).setIndicator(getString(R.string.tab_news), res.getDrawable(R.drawable.ic_tab_news)).setContent(intent);
    tabHost.addTab(spec);
要调用该方法,我使用选项卡上的下一个侦听器

tabHost.getChildAt(1).setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            //Somethig to do
            e
            return false;
        }
    });

非常感谢。

在选项卡的OnTouchListener中,首先检查触摸事件是否为单击,而不仅仅是任何触摸。如果您不想在单击选项卡时更改它,请在onTouch中返回true。 例如:


在选项卡的OnTouchListener中,首先检查触摸事件是否为单击,而不仅仅是任何触摸。如果您不想在单击选项卡时更改它,请在onTouch中返回true。 例如:


在一个理想的环境中工作是完美的。然而,在银河系上,s并不能很好地工作。因为,选项卡有3种颜色状态。未选择(黑色)、正在按下(浅蓝色)和已选择(蓝色)。一旦触摸了标签,这一个不是显示蓝色,而是显示浅蓝色,而不是蓝色。好吧,我要在标签里放一个主题,我想我应该走了。非常感谢:)在迪斯雷的作品完美。然而,在银河系上,s并不能很好地工作。因为,选项卡有3种颜色状态。未选择(黑色)、正在按下(浅蓝色)和已选择(蓝色)。一旦触摸了标签,这一个不是显示蓝色,而是显示浅蓝色,而不是蓝色。好吧,我要在标签里放一个主题,我想我应该走了。非常感谢:)
tabHost.getChildAt(1).setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            int action = event.getAction();

            if(action == MotionEvent.ACTION_UP)
            {
                //Something to do

                return true; // do this if you dont want the tab to change
            }
            return false;
        }
    });