为什么共享偏好值在检索时没有进入?

时间:2016-08-08 11:29:21

标签: android sharedpreferences

我在下面的代码中添加了三个共享首选项。而且我能够检索共享的首选项值。

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
            SharedPreferences.Editor editor = preferences.edit();
            editor.putBoolean("Loggedin",true);
            editor.putString("userId",userid);
            editor.putString("pwd",password);
            editor.apply();
            editor.commit();

我使用以下代码从另一个活动中检索。我只能检索布尔值。其他值不存在。获取字符串值的默认值。请帮帮我。

   SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

                Boolean loggedin=preferences.getBoolean("Loggedin", false);
                String userId=preferences.getString("userId", "0");
                String pwd=preferences.getString("pwd", "0");

6 个答案:

答案 0 :(得分:0)

使用此代码

composer update

答案 1 :(得分:0)

首先检查首选项中存储的值是否存储 使用此代码

Boolean loggedin=preferences.getBoolean("Loggedin", false);
 String userId=preferences.getString("userId", null);
 String pwd=preferences.getString("pwd", null);


if(userId==null || pwd==null)
{
//data not therer
}
else
{
//do something with data
}

如果发生任何错误,请告诉我。

答案 2 :(得分:0)

我认为你没有以正确的方式获得SharedPreferences。 请参阅以下文档:https://developer.android.com/training/basics/data-storage/shared-preferences.html

Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
    getString(R.string.preference_file_key), Context.MODE_PRIVATE);

此外,您不需要致电apply()commit()。其中一个就足够了。请参阅javadoc了解它们之间的差异。

答案 3 :(得分:0)

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
Boolean loggedin=preferences.getBoolean("Loggedin", false);
            String userId=preferences.getString("userId", "");
            String pwd=preferences.getString("pwd", "");

if(userId==null || userId==""||pwd==null ||pwd=="")
{

}
else
{

}

答案 4 :(得分:0)

以这种方式尝试代码。

在第一个活动中设置值

 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putBoolean("Loggedin",true);
    editor.putString("userId",userid);
    editor.putString("pwd",password);
    editor.apply();

在第二个活动中检索值

 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

            Boolean loggedin=preferences.getBoolean("Loggedin", false);
            String userId=preferences.getString("userId", "");
            String pwd=preferences.getString("pwd", "");

答案 5 :(得分:0)

以这种方式用于从代码的共享首选项中检索值。

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

            Boolean loggedin=preferences.getBoolean("Loggedin", false);
//Checking the value of userId and pwd,if they are null then there is no values of userId and pwd other than default.
             if (userId != null && pwd != null) {
        String userId = preferences.getString("userId", "0");
        String pwd = preferences.getString("pwd", "0");
    } else {
        String userId = "0";
        String pwd = "0";
    }