需要安卓tabhost回按导航
朋友的, 我在我的应用程序中实现了tabhost,我有三个选项卡定义在我的活动tab1,tab2,tab3 ...在这里我有一个问题,从on3键导航tab3到tab1按事件,我怎么能从tab3和tab2到达tab1,我尝试了使用override keyback按下,但有时它不响应navigate.without覆盖onkey回来按下它只是退出应用程序。需要安卓tabhost回按导航
这里我的代码
tabHost= getTabHost();
tabHost.addTab(tabHost.newTabSpec("tab1").setContent(
new Intent(this, DealCities.class)).setIndicator(prepareTabView("Deals",R.drawable.test)));
tabHost.addTab(tabHost.newTabSpec("tab2").setContent(new Intent(this, DbServerActivity.class))
.setIndicator(prepareTabView("My QuadDeals",R.drawable.mydeal)));
tabHost.addTab(tabHost.newTabSpec("tab3").setContent(new Intent(this, Account.class))
.setIndicator(prepareTabView("My Account",R.drawable.img_myaccount)));
在这里一个类和tabhost对象是静态的定义tabhost,
这里离我的TAB2回压事件后面的代码,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
try {
// userdealList.setVisibility(View.GONE);
// logalertTable.setVisibility(View.GONE);
// dealType.setVisibility(View.GONE);
// mydealBack=1;
// QuadMain.tabHost.setCurrentTab(0);
Intent i = new Intent();
i.setClass(DbServerActivity.this, QuadMain.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
} catch (Exception e) {
}
return true;
}
return super.onKeyDown(keyCode, event);
}
它工作正常有时只有有时它不工作..
在此先感谢。
查看本手册http://knightswhocode.com/wordpress/?p=46 - 教授如何使用TabHost。不幸的是,通过默认的onkeyBackPressed事件,您只需转到上一个活动,并且因为您有一个主要的tabhost活动,它就会退出。我建议你重写按下后退键,使用下面的方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
YourParentActivity parentActivity;
parentActivity = (YourParentActivity) this.getParent();
parentActivity.switchTab(indexTabToSwitchTo);
return true;
}
return super.onKeyDown(keyCode, event);
}
可以请给我详细的上面的代码,这里的ParentActivity和MinTrack是什么 – 2011-02-18 08:44:07
不要处理您标签activitys KeyEvent.KEYCODE_BACK
,做在主TabActivity。
只要您的选项卡活动onKeyDown()
方法不处理它,但他们确实调用super.onKeyDown(keyCode, event);
它将过滤到您的TabActivity。
在你TabActivity有一个成员int currentTab = 0
然后在TabActivity做到这一点...
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (currentTab == 0)
currentTab = 2;
else
currentTab--;
tabHost.setCurrentTab(currentTab);
return true;
}
else
return super.onKeyDown(keyCode, event);
}
你有你的onBackPressed方法是什么码? – techiServices 2011-02-18 08:28:31
看看我的问题再次我发布我的代码...事件我试图setCurrentTab()索引也是一样的问题 – 2011-02-18 08:30:48