android TabHost 如何控制在TabHost中按返回键不会回到主界面?
有A和B两个tab,B中显示省份的list,点击某个省份进入到省对应的城市,城市列表也在tabhost中,但是按back返回键,返回不到省份列表了,直接就回到手机主界面,...
有A和B两个tab,B中显示省份的list,点击某个省份进入到省对应的城市,城市列表也在tabhost中,但是按back返回键,返回不到省份列表了,直接就回到手机主界面,请问如何控制按返回键不会回到主界面?
之前我一直重写onKeyDown方法,谁知道这方法系统默认调用finish(),所以一按返回就直接到主界面了。后来我重写你所说的方法确实可以。不过我测试时,不停的点back,大概点了5下就会报异常,我是把view放到一个stack里,在Tabhost中返回上级目录时需要先干掉上级的view,多次返回就会多次remove,最后报越界异常。好像我在判断里写if(stack.size()<0) finish();没用,还是有异常,是不是这个finish()没被调用呢? 展开
之前我一直重写onKeyDown方法,谁知道这方法系统默认调用finish(),所以一按返回就直接到主界面了。后来我重写你所说的方法确实可以。不过我测试时,不停的点back,大概点了5下就会报异常,我是把view放到一个stack里,在Tabhost中返回上级目录时需要先干掉上级的view,多次返回就会多次remove,最后报越界异常。好像我在判断里写if(stack.size()<0) finish();没用,还是有异常,是不是这个finish()没被调用呢? 展开
2个回答
展开全部
重载Back键处理函数,例如:
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
File file = new File(strCrtPath);
String strParentPath = file.getParent();
if(strParentPath != null){
AddEachFile(strParentPath); /* 这里是你截获Back按键要做的事情 */
}
else{
super.onBackPressed(); /* 如果你不打算做其他事情了,就调这个,会执行系统的默认动作 */
}
return; /* 很蛋疼得发现,不写return,就会自动执行系统默认的back动作,原因未知 */
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
File file = new File(strCrtPath);
String strParentPath = file.getParent();
if(strParentPath != null){
AddEachFile(strParentPath); /* 这里是你截获Back按键要做的事情 */
}
else{
super.onBackPressed(); /* 如果你不打算做其他事情了,就调这个,会执行系统的默认动作 */
}
return; /* 很蛋疼得发现,不写return,就会自动执行系统默认的back动作,原因未知 */
}
展开全部
重载Back键处理函数,例如:
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
File file = new File(strCrtPath);
String strParentPath = file.getParent();
if(strParentPath != null){
AddEachFile(strParentPath); /* 这里是你截获Back按键要做的事情 */
}
else{
super.onBackPressed(); /* 如果你不打算做其他事情了,就调这个,会执行系统的默认动作 */
}
return; /* 很蛋疼得发现,不写return,就会自动执行系统默认的back动作,原因未知 */
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
File file = new File(strCrtPath);
String strParentPath = file.getParent();
if(strParentPath != null){
AddEachFile(strParentPath); /* 这里是你截获Back按键要做的事情 */
}
else{
super.onBackPressed(); /* 如果你不打算做其他事情了,就调这个,会执行系统的默认动作 */
}
return; /* 很蛋疼得发现,不写return,就会自动执行系统默认的back动作,原因未知 */
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询