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");