android选项卡活动转到上一个选项卡

android选项卡活动转到上一个选项卡,android,tabs,Android,Tabs,我有一个有五个标签的活动。当我从表1转到表2或表3时,一切看起来都很好。如何以编程方式从选项卡2返回到选项卡1 Intent myIntent = new Intent(this, Tab1.class); myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(myIntent); 这无法正常工作,因为它启动活动1时没有任何选项卡 从选项卡1转到选项卡2时,我可以看到

我有一个有五个标签的活动。当我从表1转到表2或表3时,一切看起来都很好。如何以编程方式从选项卡2返回到选项卡1

    Intent myIntent = new Intent(this, Tab1.class);             
    myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(myIntent);
这无法正常工作,因为它启动活动1时没有任何选项卡


从选项卡1转到选项卡2时,我可以看到选项卡1和选项卡2当前选项卡已激活。但是当从表2转到表1时,表1和表2都会从活动中消失。什么原因会导致这种情况?

这肯定会对您有所帮助

TabHost tabHost =  (TabHost) getParent().findViewById(android.R.id.tabhost);
tabHost.setCurrentTab(1);  
或者您可以参考此链接

谢谢:

只需使用finish方法即可

public void onClick(View v) 
{                             
    finish();
    startActivity(new Intent(Activity2.this, Activity1.class));            
}     

我不知道它的意图。FLAG\u ACTIVITY\u CLEAR\u TOP,从来都不需要,但是提到的松开选项卡的效果是通过从您的TabHost(而不是其中一个选项卡)调用startActivity产生的。如果是这样的话,把电话移到那里,你的标签就应该留在那里。

我也有类似的情况,但似乎没有一个答案有用。因此,我在这里发布我的解决方案:

// tab selection history, each tab has a tag which is a string
private List<String> tabIdHistory = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstance) {
    super.onCreate(savedInstanceState);
    // this layout contains TabHost and TabWidget
    setContentView(R.layout.activity_main); 

    TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
    tabHost.setup();
    tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {

        @Override
        public void onTabChanged(String tabId) {
            tabIdHistory.remove(tabId); // ensure uniqueness
            tabIdHistory.add(tabId);
        }
    });
    // continue your tab initialisation, such as
    // tabHost.addTab(tabHost.newTabSpec(TAG)
    //         .setContent(...).setIndicator(...));
}

@Override
public void onBackPressed() {
    if (tabIdHistory.size() > 1) {
        // pop the current last item, we want the second last
        tabIdHistory.remove(tabIdHistory.size() - 1);
        tabHost.setCurrentTabByTag(tabIdHistory.get(tabIdHistory.size() - 1));
    } else {
        super.onBackPressed();
    }
}
如果使用select tab1、tab3、tab2、tab1,则返回堆栈为3、2、1,如果用户按三次返回按钮,应用程序将退出主屏幕。如果要保留完整的历史记录,请注释掉以下行:

tabIdHistory.removetabId


我将从activity2转到activity1。你发布了什么?你的活动必须是TabActivity。如果你想通过编程在tab2Activity到tab1Activity之间导航,请使用我的代码。谢谢:@Angela如果我的答案对你有帮助,请不要忘记接受我的答案,并投票给我,我们将不胜感激。谢谢:当返回到上一个活动时,选项卡菜单将消失。请查看可能相同的问题