我对一个简单的应用程序有一个大而令人沮丧的问题。我有两个活动 - A 和 B。活动 A 在单击按钮时打开活动 B。活动 B 有两个“结束”:如果用户单击 B.Back 如果刚刚完成并返回 A,如果用户单击 B.OK 按钮,则活动 B 已完成,但在此之前它设置结果“OK”,因此活动 A 可以关闭也。
这是 A 的伪代码:
btnNext.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//some code...
startAct(data);
}
});
private void startAct(Intent inte) {
startActivityForResult(inte, -999);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
System.out.println(resultCode);
if(requestCode != -999)
return;
if(resultCode == RESULT_OK)
finish();
}
活动 B 是这样的:
btnOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//some other code...
finishOK();
}
});
private void finishOK() {
setResult(RESULT_OK, new Intent());
finish();
}
问题是这不起作用 - 当我按下“btnOK”时,B 应该完成,A 应该“捕捉”结果并完成,但它根本不会发生。我错过了什么?