1. ホーム
  2. android

[解決済み] onActivityResultのrequestCodeがおかしい。

2022-03-16 04:26:47

質問

フラグメントから新しいアクティビティを開始する際に

startActivityForResult(intent, 1);

で、その結果をFragmentの親アクティビティで処理したい。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.d(TAG, "onActivityResult, requestCode: " + requestCode + ", resultCode: " + resultCode);
    if (requestCode == 1) {
        // bla bla bla
    }
}

問題は、一度も requestCode に投稿したところ startActivityForResult() .

のようなものができました。 0x40001 , 0x20001 など、ランダムに上位ビットが設定されます。ドキュメントには、これについては何も書かれていません。何かアイデアはありますか?

解決方法は?

を呼び出しています。 startActivityForResult() から Fragment . これを実行すると requestCode によって変更されます。 Activity を所有する Fragment .

を正しく取得したい場合は resultCode を使用する場合は、次のようにしてください。

変更します。

startActivityForResult(intent, 1);

へ。

getActivity().startActivityForResult(intent, 1);