Проблемы с показом alertdialog в фрагменте андроида

Я последовал примеру android, но у меня есть полная ошибка:

void showDialog() { DialogFragment newFragment = MyAlertDialogFragment.newInstance(); newFragment.show(fm, "alert"); } public static class MyAlertDialogFragment extends DialogFragment { public static MyAlertDialogFragment newInstance() { MyAlertDialogFragment frag = new MyAlertDialogFragment(); return frag; } public Dialog onCreateDialog(Bundle savedInstanceState) { return new AlertDialog.Builder(getActivity()).setTitle("test") .setMessage("bla bla bla").create(); } } 

newFragment.show(fm, "alert"); Возвращает мне сообщение об ошибке:

Метод show (FragmentManager, String) в типе DialogFragment не применим для аргументов (FragmentManager, String)

Кто-то может мне помочь?

Проблема в том, что вам нужно использовать FragmentManager пакета поддержки, но вы используете собственный FragmentManager при вызове getFragmentManager() . Попробуйте вызвать getSupportFragmentManager() при инициализации переменной fm .

Фактически после того, как вы делаете, как говорит @Jacob, вы также должны убедиться, что вы включили DialogFragment из пакета Support, а не из собственного пакета.

Вы можете сделать это, импортируя,

 import android.support.v4.app.DialogFragment; 

В моем случае мой minSDK установлен в 14 поэтому я не хотел использовать пакет поддержки. Моя проблема заключалась в том, что я импортировал неправильный DialogFragment следующим образом:

 import android.support.v4.app.DialogFragment; 

Я изменил его на это, и он сработал:

 import android.app.DialogFragment;