1. ホーム
  2. android

[解決済み] startActivityForResultを使用して、子アクティビティでrequestCodeを取得する方法は?

2023-04-13 19:24:53

質問内容

A、B、C、Dという4つのアクティビティがあります。 私の状況は、AがstartActivityForResultによってアクティビティBを開始することです。

startActivityForResult(new Intent(this,B.class),ONE);

他の状況では、私は他の状況でBになります。

 startActivityForResult(new Intent(this,B.class),TWO);

Bでは、requestCodeに応じてCまたはDを呼び出す必要があります。すなわち、ONEがCを開始する必要がある場合、他のD。

そこで、子アクティビティ(ここではB)のrequestCodeを確認する方法を知りたいのですが。

つまり、Activity Bが開始されたリクエストコードを取得したいのです。

どのように解決するのですか?

リクエストコードを渡すには、put extraを使用します。

intent.putExtra("requestCode", requestCode);   

あるいは startActivityForResult を何度も使っているのであれば、それぞれを編集するよりも overridestartActivityForResult の中に Activity に、次のようなコードを追加してください。

@Override
    public void startActivityForResult(Intent intent, int requestCode) {
        intent.putExtra("requestCode", requestCode);
        super.startActivityForResult(intent, requestCode);
    }

というわけで、startActivityForResultをすべて編集する必要はありません。

ご参考になれば幸いです。