Как я могу отобразить диалог из PreferenceFragment?

Я пытаюсь вызвать DialogFragment, когда я нажимаю предпочтение в PreferenceFragment. К сожалению, когда я звоню getFragmentManager() в DialogFragment.show () я получаю следующую ошибку:

Не удается разрешить метод " show (android.приложение.FragmentManager, java.ленг.String)'

проблема в том, что я не могу, кажется, refernece android.поддержка.В4.приложение.FragmentManager из этого фрагмента. Активность в ведении этот фрагмент простирается от FragmentActivity, но, очевидно, этого недостаточно. Я пытался дозвониться getSupportFragmentManager () также, но это дало мне эту ошибку:

Не удается разрешить метод ' getSupportFragmentManager ()'

Как я могу это сделать?

вот код:

gPrefAcknowledgements.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener()
{
    @Override
    public boolean onPreferenceClick(Preference preference)
    {
        DialogAcknowledgements dialogAck = new DialogAcknowledgements();
        dialogAck.show(getFragmentManager(), "acknowledgements");
        return true;
    }
});

2 ответов


основываясь на ответе Стива, мне также нужно настроить DialogFragment для импорта из android.приложение.DialogFragment (вместо android.поддержка.В4.приложение.DialogFragment). Функция show () в этой библиотеке запрашивает android.приложение.FragmentManager, который я могу предоставить через вызов getFragmentManager (), как я сделал в коде, который я разместил в вопросе.


попробуйте это:

dialogAck.show(getActivity().getFragmentManager(), "acknowledgements");

вы всегда можете вызвать действие, которое содержит фрагмент, равный типу.

изменить:

Я ошибся, PreferenceFragment не входит в библиотеку поддержки и доступен только в Android 3.0 и выше. Это в должности может помочь справиться с этим сценарием.