如果条件满足,如何去android中的另一个活动?

时间:2016-08-02 14:33:48

标签: java android android-intent android-manifest

我是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文件中都有意图,因此可能需要相应地更改清单。

1 个答案:

答案 0 :(得分:2)

将其添加到您的清单文件中,然后重试:

<activity android:name=".GameOverActivity" />

您的所有活动都必须在清单文件中声明......