0

我正在创建一个测验应用程序。在下面的代码中,我希望在startActivity(intent);Activity 完成后执行代码。当前状态下的应用程序将显示问题文本和答案按钮。一旦用户做出选择,下一个问题和相应的答案按钮将在启动新活动之前显示片刻。我想要的是应用程序在选择答案后直接进入新活动,一旦新活动完成,就会显示下一个问题。

我的代码:

Intent intent = new Intent(getApplicationContext(), NewActivity.class);
startActivity(intent);

// helper variable to keep track of the current question
questionCounter++;
if(questionCounter < numGameQuestions)
{
    // displays the next question
    playGame(randQuestionsArr[questionCounter]);
}
4

3 回答 3

0

你正在寻找的是startActivityForResult(Intent intent, int requestCode)

通过调用startActivityForResult(Intent intent, int requestCode),您还需要:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode) {
    case REQUEST_CODE_YOU_USED_IN_STARTACTIVITYFORRESULT:
        switch (resultCode) {
        case Activity.RESULT_OK:
            Log.d(TAG, "Result OK");
            // Your code after "that Activity" is finished.

            break;
        }
        break;

    default:
        break;
    }
}

然后在that Activity,您需要:

setResult(RESULT_OK);

让调用活动知道结果。

于 2013-09-04T02:23:43.053 回答
0

1 添加定义

public static final int REQUEST_CODE = 100;

2 将 startActivity() 替换为 startActivityForResult();

startActivityForResult(intent, REQUEST_CODE );

3 在您的子活动中完成您的活动之前,调用 setResult 方法;

setResult(RESULT_OK);

4 在父活动的 onActivityResult 方法中添加您要做什么。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE ) {
    if (resultCode == RESULT_OK) {
        System.out.println("OK");
    } 
}
}
于 2013-09-04T02:23:52.623 回答
0

采用

结束()

在启动新意图后停止当前活动的执行

于 2017-06-08T16:59:20.697 回答