Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我能';I don’我不能让共享参考资料发挥作用_Java_Android_Sharedpreferences - Fatal编程技术网

Java 我能';I don’我不能让共享参考资料发挥作用

Java 我能';I don’我不能让共享参考资料发挥作用,java,android,sharedpreferences,Java,Android,Sharedpreferences,我正在为Android制作一个应用程序,在启动屏幕上,我希望在应用程序第一次启动时显示一个AlertDialog。这是我的代码: SharedPreferences savedInfo = getSharedPreferences("SavedInfo", MODE_PRIVATE); SharedPreferences.Editor infoEditor = savedInfo.edit(); boolean firstLaunch = savedInfo.g

我正在为Android制作一个应用程序,在启动屏幕上,我希望在应用程序第一次启动时显示一个AlertDialog。这是我的代码:

    SharedPreferences savedInfo = getSharedPreferences("SavedInfo", MODE_PRIVATE);
    SharedPreferences.Editor infoEditor = savedInfo.edit();

        boolean firstLaunch = savedInfo.getBoolean("firstLaunch", true);

        final AlertDialog importDialog = new AlertDialog.Builder(SplashActivity.this).create();

        if (firstLaunch == true) {
            importDialog.setTitle(R.string.splash_import_title);
            importDialog.setMessage(getString(R.string.splash_import_text));
            importDialog.setIcon(android.R.drawable.ic_dialog_alert);
            importDialog.setButton(getString(R.string.splash_import_yes), new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    //ALL FILE STUFF HERE
                    importDialog.dismiss();
                    startTimer();
                }
            });
            importDialog.setButton2(getString(R.string.splash_import_no), new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    importDialog.dismiss();
                        startTimer();
                }
            });  
            importDialog.show();
            infoEditor.putBoolean("firstLaunch", false);
        } else {
            startTimer();
        }

问题是,它每次都显示对话框。即使我已经发布了它。感谢您的时间和帮助,zeokila。

我相信您必须在
putBoolean
之后运行
infoEditor.commit()。在您这样做之前,它实际上不会保存新的首选项


我相信您必须在
putBoolean
之后运行
infoEditor.commit()
。在您这样做之前,它实际上不会保存新的首选项


您必须告诉编辑器保存。添加
infoEditor.commit()(同步)或
infoEditor.apply()(异步)以保持您的值。

您必须告诉编辑器保存。添加
infoEditor.commit()(同步)或
infoEditor.apply()(异步)以保留您的值。

infoEditor.commit()
似乎在
infoEditor.putBoolean(“firstLaunch”,false)
之后缺失,因此从未保存新值。

infoEditor.commit()
似乎在
infoEditor.putBoolean(“firstLaunch”,false)
之后缺失,因此,新值从未保存