我是android编程的初学者。
我正在制作一个测验应用程序,如果玩家正确回答我会增加分数。如果玩家回答错误,我想在玩家最终得分的屏幕上显示游戏。我使用以下代码来更新每个正确答案的分数和级别,并以错误的答案启动GameOverActivity.java:
boolean isCorrect(int answerGiven) {
if (answerGiven == correctAnswer) {
Toast.makeText(getApplicationContext(), "Well done!",
Toast.LENGTH_LONG).show();
correctTrueOrFalse = true;
} else {
correctTrueOrFalse = false;
}
return correctTrueOrFalse;
}
void updateScoreAndLevel(int answerGiven) {
if (isCorrect(answerGiven)) {
for (int i = 1; i <= currentLevel; i++) {
currentScore = currentScore + i;
}
currentLevel++;
}
else {
Intent k = new Intent (GameActivity.this, GameOverActivity.class); //#######
startActivity(k);
}
}
但每当我运行这个应用程序时,每个正确的答案都会成功更新分数和级别,但是一旦我给出了错误的答案,应用程序崩溃并且无法启动GameOverActivity.class(屏幕上的游戏代码)
我的GameOverActivity文件似乎完全正确,我觉得问题出在######
标记的行中。请帮我弄清楚问题。
修改:我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
android:screenOrientation="portrait"
</activity>
<activity android:name=".GameActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
android:screenOrientation="portrait"
</activity>
</application>
是的,我看到我的GameOverActivity文件未在清单中注册。我以为android studio auto会在manifest中注册文件。那怎么注册呢?记得我在GameActivity和GameOverActivity文件中都有意图,因此可能需要相应地更改清单。
答案 0 :(得分:2)
将其添加到您的清单文件中,然后重试:
<activity android:name=".GameOverActivity" />
您的所有活动都必须在清单文件中声明......