【问题标题】:how to go to another activity in android if a condition is fulfilled?如果满足条件,如何在android中进行另一个活动?
【发布时间】: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 添加活动标签&lt;activity android:name="...

标签: java android android-intent android-manifest


【解决方案1】:

将此添加到您的清单文件并重试:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多