Передача объекта между Tab

151
28 июля 2018, 03:10

Имеется несколько Tab (TabLayout).

Необходимо передать экземпляр класса из одного Tab в другое при свайпе или выборе вкладки.

Проблема в том что я не знаю, как это во фрагменте сделать. Там нету ни одного метода отвечающий за выбор вкладки или свайп.

Все действия прописаны в отдельном классе Pager. Экземпляр добавляется в 1 Tab, поэтому я не могу его в Pager передать.

SmartPager:

public class SmartphonePager extends FragmentStatePagerAdapter {
    int tabCount;
    public SmartphonePager(FragmentManager fm, int tabCount) {
        super(fm);
        this.tabCount = tabCount;
    }
    @Override
    public Fragment getItem(int position) {
        switch (position){
            case 0:
                SmartphoneMainTab smartphoneMainTab = new SmartphoneMainTab();
                return smartphoneMainTab;
            case 1:
                SmartphoneDisplayTab smartphoneDisplayTab = new SmartphoneDisplayTab();
                return smartphoneDisplayTab;
            case 2:
                SmartphoneStructureTab smartphoneStructureTab = new SmartphoneStructureTab();
                return smartphoneStructureTab;
            case 3:
                SmartphoneHardwareTab smartphoneHardwareTab = new SmartphoneHardwareTab();
                return smartphoneHardwareTab;
            case 4:
                SmartphoneCameraTab smartphoneCameraTab = new SmartphoneCameraTab();
                return smartphoneCameraTab;
            case 5:
                SmartphoneDataTransferTab smartphoneDataTransferTab = new SmartphoneDataTransferTab();
                return smartphoneDataTransferTab;
            case 6:
                SmartphoneBatteryTab smartphoneBatteryTab = new SmartphoneBatteryTab();
                return smartphoneBatteryTab;
            default:
                return null;
        }
    }
    @Override
    public int getCount() {
        return tabCount;
    }
}

SmartTab:

public class SmartphoneMainTab extends Fragment {
    private ProgressBar progressBar;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.tab_smartphone_main, container, false);
    }
    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        progressBar = (ProgressBar)view.findViewById(R.id.progressBar);
    }

В какой метод нужно закидывать (пример)

Fragment f = new EmployeeDetails();
            Bundle bundle = new Bundle();
            bundle.putString("ID", "123");
            f.setArguments(bundle);
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction ft = fragmentManager.beginTransaction();
            ft.replace(R.id.content_frame, f);
            ft.commit();

И еще вопрос как объект передать? у Bundle нету команды вроде putObject()

READ ALSO
Проверка на существующее значение в SQLite

Проверка на существующее значение в SQLite

Есть таблица orders(TABLE_NAME = "orders") и столбец robotNum(COLUMN_ROBOT_NUMBER = "robotNum")Суть в том, что пользователь вводит число, которое должно сравниваться с теми,...

146
Как распарсить json-файл?

Как распарсить json-файл?

Получаю JSON-файл с https://apiprivatbank

209
Как победить Exception ConcurrentModificationException

Как победить Exception ConcurrentModificationException

Пытаюсь парсить две таблицы одна в файлеxls вторая в

168
Java spring + jpa + hibernate у одного владельца много объектов (ManyToOne и OneToMany)

Java spring + jpa + hibernate у одного владельца много объектов (ManyToOne и OneToMany)

Я использую spring + jpa + hibernate и мне нужно чтобы у объекта родителя (пользователь) было много потомков (заметок), следовательно я должен использовать...

168