Как передать в Activity данные из DialogFragment используя Interface?

139
23 января 2020, 18:40

В DialogFragment:

public void onDismiss(DialogInterface dialog) {
    super.onDismiss(dialog);
    if (getActivity() instanceof OnResumeListener){
        ((OnResumeListener) getActivity()).bodyOnResume();
    }
}

Activity отслеживаю завершение DialogFragment:

@Override
public void bodyOnResume() {
}

Interface:

public interface OnResumeListener {
    public void bodyOnResume();
}

Как в Activity передать данные этим способом.

Answer 1

В целом не важно из какого фрагмента вы передаете данные в активити

Создается интерфейс

public interface OnResumeListener {
    public void bodyOnResume(YourObject data);
}

Во фрагменте вы создаете экземпляр интерфейса

public class Fragment extends Fragment {
    private OnResumeListener mListener;
    //some code
    @Override
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);
        mListener = (OnResumeListener) context;
    }
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_auth, container, false);
        init(view);
        return view;
    }
    @Override
    public void onDetach() {
        super.onDetach();
        mListener = null;
    }
    public void onDismiss(DialogInterface dialog) {
        super.onDismiss(dialog);
        mListener.bodyOnResume(YourObject data);
    }
}

А в Activity вы реализуете этот интерфейс

public class AuthActivity extends AppCompatActivity implements OnResumeListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_auth);
        init();
    }
    //some code
    @Override
    public void bodyOnResume(YourObject data){
        //some action with your data
    }
}
READ ALSO
Spring. @Transactional - исключение NoSuchBeanDefinitionException

Spring. @Transactional - исключение NoSuchBeanDefinitionException

Изучаю Spring, и сейчас я на этапе транзакцийСтали интересны именно транзакции Hibernate

151
Для чего toString() в StringBuffer?

Для чего toString() в StringBuffer?

Чем отличаются эти строчки ?

129
Передать переменную из URL в val()

Передать переменную из URL в val()

Нужно чтобы при вызове sitecom/?Email=ivan

128
Не корректно работает нажатие на кнопку в javascript

Не корректно работает нажатие на кнопку в javascript

Пытаюсь немного упростить себе жизнь и решил написать javascript-код, который при загрузке страницы автоматически заполняет необходимы поля...

104