Я пытаюсь создать диалоговое окно с предупреждением при нажатии на Предпочтение на экране preferenceScreen.
Мой код выглядит следующим образом:
public class AlertDialogFragment extends DialogFragment {
@NotNull
public Dialog onCreateDialog(Bundle savedInstanceState){
AlertDialog.Builder builder = new AlertDialog.Builder(Objects.requireNonNull(getActivity()));
builder.setMessage(R.string.are_you_sure);
builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//something
}
})
.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//something
}
});
return builder.create();
}
}
Я создал объект из этого класса и вызвал show()
, но после запуска приложения и нажатия на настройки ничего не происходит.
Вот мой другой класс:
public class SettingsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener {
@Override
public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey){
setPreferencesFromResource(R.xml.prefs, rootKey);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sp, String key){
FragmentManager manager = getFragmentManager();
AlertDialogFragment alert = new AlertDialogFragment();
if(key.equals("logout")){
if (manager != null) {
alert.show(manager, "tag");
}
}
}
}
У кого-нибудь есть идеи?