在 Android 中将 intent 用于 Game Over 屏幕时出错
Error using intent for a Game Over screen in Android
我正在使用 Java 构建一个 Android 游戏。我希望我的游戏在计时器达到零后结束,因此为此我尝试使用意图将玩家带到游戏结束屏幕。然而,这是行不通的,因为它表示在调用 GameActivity 中的意图的代码之后需要一个表达式。我最初尝试在 GameView 中设置意图,但发现这不起作用。下面是相关的代码,任何帮助表示赞赏。
GameView 中的代码:
long timeNow = System.currentTimeMillis();
long timeLeft = 10 - (timeNow - startTime) / 1000;
if (timeLeft >= 0) {
canvas.drawText(Long.toString(timeLeft), 20, 30, text);
if (timeLeft == 0) {
((GameActivity).getContext()).goSplash();
}
}
GameActivity 中的代码
public void goSplash(){
intent = new Intent(this, GameOverScreen.class);
startActivity(intent);
}
您可以直接从您的视图启动 activity,而不必强制转换上下文(如果您没有为您的视图使用 GameActivity 的上下文,这可能会导致 ClassCastException)。
getContext().startActivity(new Intent(getContext(), GameOverScreen.class));
够了。
您的代码中的问题是 .
。应该是
((GameActivity)getContext()).goSplash();
不是
((GameActivity).getContext()).goSplash();
我正在使用 Java 构建一个 Android 游戏。我希望我的游戏在计时器达到零后结束,因此为此我尝试使用意图将玩家带到游戏结束屏幕。然而,这是行不通的,因为它表示在调用 GameActivity 中的意图的代码之后需要一个表达式。我最初尝试在 GameView 中设置意图,但发现这不起作用。下面是相关的代码,任何帮助表示赞赏。
GameView 中的代码:
long timeNow = System.currentTimeMillis();
long timeLeft = 10 - (timeNow - startTime) / 1000;
if (timeLeft >= 0) {
canvas.drawText(Long.toString(timeLeft), 20, 30, text);
if (timeLeft == 0) {
((GameActivity).getContext()).goSplash();
}
}
GameActivity 中的代码
public void goSplash(){
intent = new Intent(this, GameOverScreen.class);
startActivity(intent);
}
您可以直接从您的视图启动 activity,而不必强制转换上下文(如果您没有为您的视图使用 GameActivity 的上下文,这可能会导致 ClassCastException)。
getContext().startActivity(new Intent(getContext(), GameOverScreen.class));
够了。
您的代码中的问题是 .
。应该是
((GameActivity)getContext()).goSplash();
不是
((GameActivity).getContext()).goSplash();