как правильно организовать передачу данных между фрагментами в сингл активити приложении

Рейтинг: 0Ответов: 0Опубликовано: 09.02.2023

хотелось бы услышать авторитетное мнение
Есть активити, контейнер для фрагментов, и два фрагмента(один сменяет другой по нажатию кнопки)
активити реализует интерфейс для передачи строки между фрагментами
дам код только методов интерфейса, потому что вопрос по ним
один способ закоментирован, другой - нет
Вопрос: возможны ли вообще такие варианты
Bundle bundle = new Bundle();
String message = "";
final String KEY = "message";
@Override
public void sendMessage(String message) {
    bundle.putString(KEY,message);

    //Bundle bundle = new Bundle();
    //bundle.putString(KEY, message);
    //fragmentManager.setFragmentResult(KEY,bundle);
}
@Override
public String listenMessage() {
    //Fragment fragment = fragmentManager.findFragmentById(R.id.fragmentContainer);
    //fragmentManager.setFragmentResultListener(KEY, fragment.getViewLifecycleOwner(), new //FragmentResultListener() {
        //@Override
        //public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle result) {
           // message = result.getString(KEY);
        //}
    //});  

//return message;
    return bundle.getString(KEY);
}


я так понимаю вариант под комментариями безопаснее, благодаря LifecycleOwner.
но я явно в listenMessage() что-то начудил так как у активити нет LifecycleOwner

Ответы

Ответов пока нет.