我在做一个小游戏程序,有3个activity。第一个activity是主菜单 (FirstActivity class)。代码如下:
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, ACTIVITY_CREATE);
当执行第二个activity。代码如下:
setContentView(new MovementView(this));
MovementView 类继承SurfaceView. 在MovementView 类中写了所有的游戏代码。
我想实现当lives == 0, 就执行第三个activity. 如何实现啊?
我尝试着把代码写成类似第一个 FirstActivity类,但是程序就不能运行。如果我用下面这个方法:
((Activity)getContext()).finish();
又会跳回第一个Activity, 这个不是我要实现的,我想跳到第三个activity。
请大师帮忙,不胜感激。
FirstActivity class:
private void startGame() {
Intent i = new Intent(this, SecondActivity.class);
startActivity(i);
}
SecondActivity class:
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 class:
if (lives == 0){
updateThread.setRunning(false);
((Activity)getContext()).finish();
}
你在第二个activity中写一个跳转的方法,然后将这个activity传递到MovementView中,在MovementView中当判断lives ==0时执行activity的跳转方法
activity中的方法:
public void skipPage(){
Intent lIntent = new Intent();
lTntent.setClass(this, Test.class);
this.startActivity(lIntent);
this.finish();
}
MoveMentView中的方法:
定义一个类成员变量mActivity;
在构造函数中:mActivity = (Activity)context;
在判断lives == 0时执行mActivity.skipPage();
private Activity a;
public MovementView(Acitivity a) {
this.a = a;
// your code
}
Intent i = new Intent(this, ThirdActivity.class);
Intent i = new Intent(a, ThirdActivity.class);