gpt4 book ai didi

java - 显示弹出窗口一次?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:20:00 25 4
gpt4 key购买 nike

我正在尝试显示一个弹出窗口,如果用户点击不再显示,我不想再显示它。但是,dont show again 按钮不起作用。我正在使用共享首选项:

        if (dialogPrefs.getBoolean("Show", true) == true) {

new AlertDialog.Builder(this)
.setTitle("Blah")
.setMessage("Blah blah blah ")
.setNegativeButton("Not now", null)
.setNeutralButton("Don't show again", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialogEditor = dialogPrefs.edit();
dialogEditor.putBoolean("Show", false);
dialogEditor.commit();
}
})
.setPositiveButton("Enable", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {
enable();
}
}).show();

我的偏好和编辑器在开始时是这样声明的:

SharedPreferences dialogPrefs;
SharedPreferences.Editor dialogEditor;

共享首选项在 onCreate() 中初始化。

请让我知道可能是什么问题。

谢谢,

鲁契尔

最佳答案

您的问题是SharedPreferences 的声明;它已全部声明但...未初始化!操作系统应将您的键值数据写入何处?

我建议您阅读此 Get a Handle to a SharedPreferences

试试这个代码,我测试过它并且可以工作:

SharedPreferences dialogPrefs = this.getPreferences(Context.MODE_PRIVATE);
final SharedPreferences.Editor dialogEditor = dialogPrefs.edit();


if (dialogPrefs.getBoolean("Show", true)) {

new AlertDialog.Builder(this)
.setTitle("Blah")
.setMessage("Blah blah blah ")
.setNegativeButton("Not now", null)
.setNeutralButton("Don't show again", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialogEditor.putBoolean("Show", false);
dialogEditor.commit();
}
})
.setPositiveButton("Enable", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {
Log.i("TAG", "onClick: enable");
}
}).show();
}
}

关于java - 显示弹出窗口一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35687497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com