Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.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 与SharedReference相关的问题_Java_Android - Fatal编程技术网

Java 与SharedReference相关的问题

Java 与SharedReference相关的问题,java,android,Java,Android,我想通过SharePreference将字符串存储在内存中,但出现了一些无法存储在内存中的问题。请告诉我如何解决此问题? 需要许可吗 代码:: SavePreferences("MEM1", LanguageSelcted); LoadPreferences(); 方法:: public void SavePreferences(String key, String value) { try { SharedPreferences sh

我想通过SharePreference将字符串存储在内存中,但出现了一些无法存储在内存中的问题。请告诉我如何解决此问题? 需要许可吗

代码::

SavePreferences("MEM1", LanguageSelcted); 
LoadPreferences();
方法::

public void SavePreferences(String key, String value) {
            try {
                SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putString(key, value.trim());
                editor.commit();
            } catch (Exception e) {

            e.printStackTrace();

            }

private void LoadPreferences() {
        try {
            SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
            LanguageSelection = sharedPreferences.getString("MEM1", "");
            Log.i(TAG, "LanguageSelection is :>>>" + LanguageSelection);
            Toast.makeText(getBaseContext(), "LanguageSelection is :>>>" + LanguageSelection, Toast.LENGTH_LONG).show();
            /*
             * textSavedMem1.setText(strSavedMem1);
             * textSavedMem2.setText(strSavedMem2);
             */
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

最突出的是这一行:

LanguageSelection = sharedPreferences.getString("MEM1", "");
应该有一个参考

LanguageSelection whateverNameYouWant = sharedPreferences.getString("MEM1", "");
或者你的意思是

String LanguageSelection = sharedPreferences.getString("MEM1", "");
保存应该是

SharedPreferences myPrefs1 = this.getSharedPreferences(
                                "update", MODE_PRIVATE);
                        SharedPreferences.Editor prefsEditor = myPrefs1.edit();
                        prefsEditor.putString("URL", apkurl);
                        prefsEditor.commit();
SharedPreferences pref = this.getSharedPreferences("update",
                MODE_PRIVATE);
        String key = pref.getString("URL", "");
而且应该是

SharedPreferences myPrefs1 = this.getSharedPreferences(
                                "update", MODE_PRIVATE);
                        SharedPreferences.Editor prefsEditor = myPrefs1.edit();
                        prefsEditor.putString("URL", apkurl);
                        prefsEditor.commit();
SharedPreferences pref = this.getSharedPreferences("update",
                MODE_PRIVATE);
        String key = pref.getString("URL", "");

getSharedPreferences将包含两个参数。

你能详细说明你遇到了什么问题吗?当我加载Preference时,它在字符串中没有得到任何值……SavePreferences方法(或LoadPreferences方法)是否引发了任何异常?@MikeIsrael不,它不会引发任何类型的错误。抛出一个Log.d()如何插入它之前,请确保它具有值。LanguageSelection可能是其应用程序中的成员变量。。只是没有使用正确的Java变量命名实践如果他正在存储跨活动使用的首选项,那么这是正确的。他使用的getPreferences(int模式)存储特定活动的首选项。因此,如果他试图在不同的活动中访问这些偏好,则不会起作用。这将说明这一点,并获得正确的值。