DialogFragment в классе, который расширяется от AppCompatPreferenceActivity

Моя проблема в том, что у меня есть мои предпочтения деятельности, которая распространяется от AppCompatPreferenceActivity и мне нужно показать DialogFragment, Поэтому, когда я делаю следующее:

DialogFragmente dialogFragment= new MyDialogFragmentClass()
DialogFragment.show(getSupportFragmentManager(),"My Dialog")

Я получаю сообщение об ошибке, потому что не могу использовать getSupportFragmentManager() метод. Поэтому мой вопрос заключается в том, как я могу использовать этот метод, если мой класс расширяется от AppCompatPreferenceActivity.

Я пытался с помощью getFragmentManager() вместо этого, но это не работает ни.

это мои занятия:

public class Settings_acticity extends AppCompatPreferenceActivity {
    private SwitchPreference banner_switch;
    private SharedPreferences sharedPreferences;
    private ListPreference interstial_ad;

    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
        DialogFragment dialogFragment = new MyDialog();
        dialogFragment.show(getSupportFragmentManager(), "My dialog");
    }
 }

И класс DialogFragment:

public class MyDialog extends DialogFragment {


    public MyDialog(){
        // Required empty public constructor
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        View vista=getActivity().getLayoutInflater().inflate(R.layout.fragment_MyDialog,null);
        setCancelable(false);

        builder.setView(vista).setPositiveButton(R.string.aceptar, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                //Yes Code
            }
        }).setNegativeButton(R.string.cancelar, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
            //No code
            }
        });
        return builder.create();
    }

}

Спасибо за помощь!

1 ответ

Решение

Это, вероятно, потому что вы используете DialogFragment из библиотеки поддержки.

Попробуйте использовать оригинальный, импортировав android.app.DialogFragment вместо android.support.v4.app.DialogFragment

Затем вы можете показать диалог с:

MyDialog myDialog = new MyDialog();
myDialog.show(getFragmentManager(), "My Dialog");
Другие вопросы по тегам