ターゲットフラグメントからonActivityResult()を呼び出そうとしています。下記のコードでNPEを取得する。ターゲットフラグメント内でハードウェアが押されたときのsourcefragmentのonactivity結果の呼び出し
いくつかご提案ください。
// target fragment
public void backButtonWasPressed() {
Intent intent = new Intent();
// NPE occurs in the below line
getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, intent);
getActivity().getSupportFragmentManager().popBackStack();
}
// main activity
@Override
public void onBackPressed() {
if (sourceFragment != null) {
TargetFragment fragment = new TargetFragment();
fragment.backButtonWasPressed();
} else {
super.onBackPressed();
return;
}
}
を呼び出し、次に、引数として、すなわち、
のフラグメントを通過させるようにしてもよいですか?オブジェクトを作成せずにこのメソッドを呼び出すと、getTargetFragment()はどのように動作しますか。 – Rahul
メソッドbackButtonWasPressed()が非staticになっている場合、このメソッドをmainアクティビティから呼び出すためにフラグメントクラスをinstatntiateする必要があります。そして、私がそれをすると、私は呼び出しメソッド内にNPEを取得しています。 – Durga
私はそれを働かせました。コードを変更してツールバーに戻るボタン(画像ビュー)を表示し、ハードウェアの戻るボタンを押したときにbackbutton.performclick()がトリガーされました。 buttonOnClickListener()を追加し、コードをbuttonclicklistenerブロック 'Intent intent = new Intent();に追加しました。 onActivityResult(getTargetRequestCode()、Activity.RESULT_OK、intent); getTargetFragment()。 getActivity()。getSupportFragmentManager()。popBackStack(); ' – Durga