私のアプリケーションに親フラグメントとダイアログフラグメントがあります。クリックすると親フラグメントがダイアログフラグメントを開きます。これは私のParentFragmentクラスです。getTargetFragment return Null
public class ParentFragment extends Fragment {
........
........
public class ButtonClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment prev = getFragmentManager().findFragmentByTag("dialog");
if (prev != null) {
ft.remove(prev);
}
MyDialogFragment newFragment = new MyDialogFragment();
newFragment.setTargetFragment(ParentFragment.this, 0);
newFragment.show(getFragmentManager(), "dialog");
}
}
}
これはMyDialogFragmentクラスでgetTargetFragmentは常にnullを返した場合MyDialogFragmentクラス
public class MyDialogFragment extends DialogFragment {
..........
public MyDialogFragment() {
parentFragment = (ParentFragment)getTargetFragment();
}
...........
...........
}
です。
「getFragmentManager()。findFragmentByTag(parentFragmentTag);」のようにindFragmentByTagを使ってみてください。 –