我正在创建一个测验应用。在下面的代码中,我希望startActivity(intent);
之后的代码在Activity完成后执行。处于当前状态的应用程序将显示问题文本和答案按钮。一旦用户做出选择,下一个问题和相应的答案按钮将在新活动启动之前一瞬间显示。我想要的是让应用程序在选择答案时直接进入新的Activity,并在新的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]);
}
答案 0 :(得分: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);
让调用活动知道结果。
答案 1 :(得分:0)
1添加定义
public static final int REQUEST_CODE = 100;
2用startActivityForResult();
替换startActivity()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");
}
}
}
答案 2 :(得分:0)