我按照本教程http://www.andengine.org/forums/tutorials/multiple-screen-andengine-game-v2-t4755.html创建了一个包含多个场景且只有一个活动的简单应用程序。 我想知道当我在第一个场景中使用后退按钮并完成活动时,我怎么能回到上一个场景。
我在MultiScreen类中尝试过:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
this.mEngine.getScene().back();
}
return super.onKeyDown(keyCode, event);
}
用core.getEngine().setScene(scene);
this.mEngine.getScene().setChildScene(scene);
场景的工作方式与我的理解方式不同,我决定:
@Override
public void onBackPressed()
{
Scene scene = this.mEngine.getScene();
if(scene.hasChildScene()){
scene.back();
}
else{
this.finish();
}
}
答案 0 :(得分:2)
您可以通过覆盖onBackPressed()方法或dispatchKeyEvent()方法以两种方式之一覆盖返回键
覆盖onBackPressed:
@Override
public void onBackPressed()
{
// your code here
}
重写dispatchKeyEvent:
@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
// your code here
}
return (yourbooleanhere);
}
答案 1 :(得分:0)
在这个意义上,我有一个像你这样的困境。我解释。我有一个与ViewFlipper一起工作的活动。我需要转到我在ViewFlipper标签上写的不同“布局”,当我在一个特定的“布局”中,这不是活动的主要“布局”时,我需要回到主要按下后退按钮,但是,它无法正常工作。
要解决这个困境,我重写OnBackPressed
函数,如:
@Override
public void onBackPressed() {
if (condition) {
// go to the main
} else {
super.onBackPressed();
}
}
condition
,正如名字所说,你怎么知道你处于主要的“布局”?例如,在我的ViewFlipper中,主“布局”按数字排序,从0开始,所以我的主“布局”为0,我怎么知道我在0“布局”viewflipper.getDisplayedChild()
。如果它返回0,我会保持主要的“布局”,否则。
这么简单,但我知道,不是那么优雅。这是一个想法,我认为这可以帮助你。