単純なアプリケーションで大きくてイライラする問題があります。A と B の 2 つのアクティビティがあります。アクティビティ A は、ボタンのクリックでアクティビティ B を開きます。アクティビティ B には 2 つの「終了」があります。ユーザーが 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も結果を「キャッチ」して終了する必要がありますが、それは単に起こりません。私は何が欠けていますか?