首页 > 解决方案 > 未显示警报对话框

问题描述

当点击preferenceScreen 上的Preference 时,我试图发出警告对话框。

我的代码如下:

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

有人有什么主意吗?

标签: androidsharedpreferencesandroid-alertdialog

解决方案


推荐阅读