【发布时间】:2016-08-02 14:33:48
【问题描述】:
我是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 文件中都有意图,因此可能必须相应地更改清单。
【问题讨论】:
-
你能分享你的日志吗?
-
还有 GameOverAcitivty,似乎错误在里面
-
你的逻辑没问题,需要看日志
-
你在 AndroidManifest 中注册了 GameOverAcitivty 吗?-)
-
在 AndroidManifest 中为 GameOverActivity 添加活动标签
<activity android:name="...
标签: java android android-intent android-manifest