Метод addToBackStack(null) не относится к свойству класса FragmentManager. Это правильный способ вернуться к предыдущему фрагменту/действию?

Согласно руководствам, которые я прочитал, метод addToBackStack(null) является правильным способом вернуться к предыдущему загруженному фрагменту или активности. Но, с моей стороны, addToBackStack() отсутствует в объекте ft, который содержит класс FragmentManager. Вот мой код.

conteach.setOnClickListener(new OnClickListener() {
                    public void onClick(View v) {
                        SpecificArticleFragment spcf = new SpecificArticleFragment();
                        Bundle args = new Bundle();
                        args.putString("art_id", v.getTag().toString());
                        spcf.setArguments(args);

                        FragmentManager ft = getFragmentManager();
                        ft.beginTransaction().replace(R.id.content_frame, spcf).commit();
                     //I know that I should put the ft.addToBackStack(null) code here but the addToBackStack(null) method does not exist on the ft object
                    }
                 });

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


person John Ranniel Sinel    schedule 30.11.2015    source источник


Ответы (1)


вы используете диспетчер фрагментов, но addtobackStack является методом класса FragmentTransaction. см. код ниже.

 // Create new fragment and transaction
    Fragment newFragment = new ExampleFragment();
    FragmentTransaction transaction = getFragmentManager().beginTransaction();

    // Replace whatever is in the fragment_container view with this fragment,
    // and add the transaction to the back stack
    transaction.replace(R.id.fragment_container, newFragment);
    transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();
person vishal jangid    schedule 30.11.2015