использовать FragmentManager во фрагменте?

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

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;

public class FragmentDiscover extends Fragment
{
    private View rootView;
    private ImageButton folderButton;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        // Inflate the layout for this fragment
        rootView = inflater.inflate(R.layout.activity_9a_discover , container, false);
        bindActivity();
        return rootView;
    }
    private void bindActivity()
    {
        cardStack = (SwipeDeck) rootView.findViewById(R.id.main_frag_swipe_deck);
        dragCheckbox = (CheckBox) rootView.findViewById(R.id.main_frag_checkbox_drag);
        dragCheckbox.setVisibility(View.GONE);
        //Folder button
        final android.app.FragmentManager fragmentManager = getFragmentManager();

        FragmentManager fragmentManager1 = getFragmentManager();//RED LINE ERROR?!?!?

        final FoldersDialogFragment foldersDialogFragment = new FoldersDialogFragment();
        folderButton = (ImageButton) rootView.findViewById(R.id.main_button_folders);
        folderButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                foldersDialogFragment.show(fragmentManager, "folderPop");
            }
        });
        makeSomeSampleCards();
    }

Итак, с FragmentManager fragmentManager1 = getFragmentManager();

Строка foldersDialogFragment.show(fragmentManager, "folderPop"); становится ошибкой красной строки.

И с FragmentManager fragmentManager1 = getSupportFragmentManager;
, использующим импорт v4, я получаю ошибку пометки.

И я понятия не имею, как это решить... надеюсь на мудрость вашего парня!

ваше здоровье!


comment
Вы уверены, что это строка с ошибкой? Если эти импорты на самом деле являются тем, что у вас есть в этом файле класса, это должна быть строка над ней, дающая ошибку.   -  person Mike M.    schedule 18.01.2017


Ответы (1)


Когда вы находитесь в Fragment, вы используете getChildFragmentManager () для получения android.support.v4.app.FragmentManager для добавления дочерних фрагментов (фрагментов, принадлежащих другим фрагментам).

Конечно, вы также должны убедиться, что используете android.support .v4.DialogFragment в качестве базового класса для вашего FoldersDialogFragment.

person ianhanniballake    schedule 17.01.2017
comment
но как использовать android.support.v4.DialogFragment в качестве базового класса для FoldersDialogFragment? - person Alireza Noorali; 29.10.2019