Я знаю, что есть один вопрос с таким же названием, но мой сценарий немного сложен. Во FragmentA один раз, нажав кнопку, начнется новое действие, чтобы показать FragmentB, если затем нажать одну кнопку во FragmentB, мне нужно закрыть FragmentB, вернуться к FragmentA и показать DialogFragmentC. То, что я делаю, это определить один слушатель во FragmentB и реализовать его во FragmentA.
Пример кода приведен ниже:
class FragmentA extends Fragment implements FragmentBDelegate {
.......
@Override
public void onButtonClicked() {
DialogFragment popup = new DialogFragmentC();
popup.show(((AppCompatActivity)getContext()).getSupportFragmentManager(), null);
}
......
}
class FragmentB extends Fragment{
......
private void onButtonClicked(View v) {
getActivity().finish();// to dismiss current activity
if(mListener != null) {
mListener.onButtonClicked();
}
}
public interface FragmentBDelegate {
void onButtonClicked();
}
......
}
Почему DialogFragment не отображается? Если слушатель не может выполнить это требование, как реализовать?