Sobes.tech
Назад к вопросам
Junior — Middle
69

Как передать данные объекта между двумя фрагментами в приложении?

Ответ от нейросети

sobes.tech AI

Для передачи данных объекта между двумя фрагментами в Android обычно используют аргументы (Bundle).

Основные способы:

  1. Через Bundle в setArguments/getArguments

    • В первом фрагменте создаёте Bundle, кладёте туда данные (примитивы, Serializable, Parcelable).
    • Устанавливаете Bundle во второй фрагмент через setArguments.
    • Во втором фрагменте получаете данные через getArguments.
  2. Через ViewModel (если фрагменты принадлежат одной Activity)

    • Создаёте общий ViewModel.
    • Первый фрагмент записывает данные в ViewModel.
    • Второй фрагмент читает данные из ViewModel.

Пример передачи через Bundle:

// В первом фрагменте
Bundle bundle = new Bundle();
bundle.putString("key", "value");
SecondFragment fragment = new SecondFragment();
fragment.setArguments(bundle);

// Во втором фрагменте
@Override
public View onCreateView(...) {
    Bundle args = getArguments();
    if (args != null) {
        String value = args.getString("key");
    }
    // ...
}

Если объект сложный, рекомендуется реализовать Parcelable для эффективной передачи.