我正在做简单的游戏。我有3个活动。第一个活动是主菜单(FirstActivity类)。
第一个活动具有以下代码:
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, ACTIVITY_CREATE);
它调用第二个活动,其中,第二个活动具有以下代码:
setContentView(new MovementView(this));
MovementView类扩展了SurfaceView。我在MovementView类中编写所有游戏代码。
因此,我想在生命== 0时将其更改为ThirdActivity。我怎么做?
我尝试过放置类似于FirstActivity的类的代码,但它似乎不起作用。
如果我放
((Activity)getContext()).finish();
它只是跳回到FirstActivity,但这不是我所需要的,我需要它进入ThirdActivity类。
最佳答案
最后我可以回答,不得不等待24h。
所以最后,我设法完成的唯一变体是这样的:
FirstActivity类:
点击
private void startGame() {
Intent i = new Intent(this, SecondActivity.class);
startActivity(i);
}
SecondActivity类:
protected void onCreate(Bundle savedInstanceState) {
setContentView(new MovementView(this));
}
@Override
protected void onDestroy() {
Intent i = new Intent(this, GameOver/*GameOver=ThirdActivity*/.class);
startActivity(i);
super.onDestroy();
}
MovementView类:
if (lives == 0){
updateThread.setRunning(false);
((Activity)getContext()).finish();
}
我不知道onDestroy和onStop之间的区别,但是两者都有效。
唯一不愉快的是,当lives == 0时,它返回FirstActivity(大约半秒钟),然后返回GameOver类。
关于android - 如何在Android中更改 Activity ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5638174/