Android 公开活动;B";从tabhost的tabspec TA1和活动的背面;B";tabhost应设置为";TA1“;tabspec

Android 公开活动;B";从tabhost的tabspec TA1和活动的背面;B";tabhost应设置为";TA1“;tabspec,android,tabs,android-tabhost,Android,Tabs,Android Tabhost,我在tabhost TA1、TA2、TA3、TA4中有四个tabspec,其中我将当前选项卡设置为TA2,我分别为四个tabspec A1、A2、A3和A4设置了四个不同的活动,活动A1设置为TA1,依此类推,然后活动A1打开新的活动B1,当我从活动B1按下后退按钮时,选项卡应设置为TA1,而不是默认的TA2,如何在tab host中实现上述任务,我尝试将tab的当前索引存储到共享首选项中,并在Resume上从共享首选项中读取当前tab的int值,但这种方式无法实现上述任务,如果有人知道最佳解决

我在tabhost TA1、TA2、TA3、TA4中有四个tabspec,其中我将当前选项卡设置为TA2,我分别为四个tabspec A1、A2、A3和A4设置了四个不同的活动,活动A1设置为TA1,依此类推,然后活动A1打开新的活动B1,当我从活动B1按下后退按钮时,选项卡应设置为TA1,而不是默认的TA2,如何在tab host中实现上述任务,我尝试将tab的当前索引存储到共享首选项中,并在Resume上从共享首选项中读取当前tab的int值,但这种方式无法实现上述任务,如果有人知道最佳解决方案,请告诉我。

您可以覆盖此功能以检查设备的“单击后退”按钮

@Override
public boolean onKeyDown(final int keyCode, final KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) 
{
    // implement your Tab move code from one tab to another. 
}
return super.onKeyDown(keyCode, event);
}

Reena您应该在tab活动中使用处理程序,并在按下按钮时从活动B发送消息,当您按下按钮时,消息将发送到tab活动,在处理程序的处理消息时,您可以将currentTab设置为活动TA1

在TAbActivity中使用此处理程序

    static Handler mHandler;
再创造

tabHost.setCurrentTab(1); //For TA2
    setTabColor(tabHost);

    mHandler = new Handler()
    {
        public void handleMessage(android.os.Message msg) 
        {
            super.handleMessage(msg);
            if (msg.what == 0)
            {
                tabHost.setCurrentTab(0);//for TA1
            }

        }
    };
在B幕的背压中使用这个

            Message msgtab=HomeTab.mHandler.obtainMessage();
            msgtab.what=0;
            HomeTab.mHandler.sendMessage(msgtab);

HomeTab将是您创建所有选项卡的选项卡活动。
Hi Friends i resolved my issue by passing value through intent to main tab activity, here below is sample code,Set this code lines to child activity of tab that means if i relate to above question child activity is "B1",

Intent homeIntent = new Intent(SelectFetchee.this, Home.class);
            homeIntent.putExtra("tabvalue", "2");
            startActivity(homeIntent);
Then in main activity that have tabhost in which i collect the string

String crntTab = getIntent().getStringExtra("tabvalue");

        if (crntTab == null) {
            tabHost.setCurrentTab(2);
        } else if (crntTab.toString().equals("4")) {

            tabHost.setCurrentTab(4);
        } else if (crntTab.toString().equals("2")) {
            tabHost.setCurrentTab(2);
        } else if (crntTab.toString().equals("3")) {
            tabHost.setCurrentTab(3);
        } else if (crntTab.toString().equals("0")) {
            tabHost.setCurrentTab(0);
        } else if (crntTab.toString().equals("1")) {
            tabHost.setCurrentTab(1);
        }