我正在使用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);
}
最佳答案
您可以直接从视图开始活动,而不必强制转换上下文(如果未为视图使用GameActivity的Context,则可能导致ClassCastException)。
getContext().startActivity(new Intent(getContext(), GameOverScreen.class));
足够。
您的代码中的问题是
.
。它应该是((GameActivity)getContext()).goSplash();
不
((GameActivity).getContext()).goSplash();