我是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会自动在清单中注册文件。那么如何注册呢?请记住,我在GameActivity和GameOverActivity文件中都有意图,因此清单可能必须相应地进行更改。
最佳答案
将此添加到清单文件,然后重试:
<activity android:name=".GameOverActivity" />
您的所有活动都必须在清单文件中声明...