Как перемещаться по фрагментам с помощью кнопок «назад / вперед» - PullRequest
0 голосов
/ 26 января 2019

В настоящее время я программирую свое первое приложение и хочу изменить вкладку «Активность», чтобы пользователь мог перемещаться между фрагментами, используя кнопки «назад» и «далее», а не проводя пальцем.

Фрагменты используются для взаимодействия с пользователем и содержат некоторые динамически заполненные текстовые представления и радиокнопки.Я пытался перейти к определенному фрагменту, когда я нажимаю кнопку «fab» со следующим кодом, но это не работает, поскольку я просто получаю пустой фрагмент:

// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

// Set up the ViewPager with the sections adapter.
mViewPager = findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);

FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Fragment fragment = mSectionsPagerAdapter.getItem(2);
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.container, fragment);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
    }
});

Как мне двигатьсявперед и назад через фрагменты с помощью кнопок?Я предполагаю, что эти кнопки лучше объявлять в действии, а не во фрагменте, не так ли?Что мне нужно изменить в методе OnClick этих кнопок?

1 Ответ

0 голосов
/ 26 января 2019

на следующей кнопке напишите это

 NextFragment fragment = new NextFragment();
    android.app.FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = 
    fragmentManager.beginTransaction();
    fragmentTransaction.add(R.id.content, fragment);
    fragmentTransaction.addToBackStack(NextFragment.class.toString());
    fragmentTransaction.commit();

на предыдущей кнопке просто напишите это

    getActivity().getFragmentManager().popBackStack();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...