Android 公开活动;B";从tabhost的tabspec TA1和活动的背面;B";tabhost应设置为";TA1“;tabspec
我在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值,但这种方式无法实现上述任务,如果有人知道最佳解决方案,请告诉我。您可以覆盖此功能以检查设备的“单击后退”按钮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值,但这种方式无法实现上述任务,如果有人知道最佳解决
@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);
}