Передача экземпляра класса во Fragment

189
30 июля 2018, 03:50

Необходимо передать экземпляр класса из одного фрагмента в другой. Знаю что можно передавать переменные через Bundle

fragment = new SmartphoneMainTab();
Bundle bundle = new Bundle();
bundle.putInt("id",product.getId());
fragment.setArguments(bundle);

Но как передать экземпляр класса?

Answer 1

Может быть попробовать через putParcelable?:

fragment = new SmartphoneMainTab();
NewObject newObject = new NewObject();
Bundle bundle = new Bundle();
bundle.putParcelable("Object", newObject);
fragment.setArguments(bundle);

Затем в onCreate фрагмента:

NewObject newObject = (NewObject) bundle.getParcelable("Object");

Но ваш класс должен реализовывать интерфейс Parcelable.

Answer 2
public class Product implements Serializable {
    private int id;
    private String name;
}

Отправка

fragment = new SmartphoneMainTab();
Bundle bundle = new Bundle();
bundle.putSerializable("model", product);
fragment.setArguments(bundle);

Получение

Product product = (Product) getIntent().getSerializableExtra("model");
READ ALSO
Добавление navigation drawer

Добавление navigation drawer

Как мне в проект добавить navigation drawer, если я создаю не общий toolbar, а добавляю его отдельно в каждый фрагмент

161
Android доступ к экземплярам класса

Android доступ к экземплярам класса

Имеется некоторый класс, например

173
Открытие Alertdialog по нажатию элемента RecyclerView(CardView)

Открытие Alertdialog по нажатию элемента RecyclerView(CardView)

Необходимо по нажатию на элемент, открыть AlertDialog и передать в него объектНе видео метод getLayoutInflater

179
Шаблонизатор Spring

Шаблонизатор Spring

Имеется такая структура - чистые JSP без ничего другого

267