Button不会更新来自SharedPreference的数据

时间:2017-07-21 04:52:38

标签: android button sharedpreferences android-sharedpreferences

我使用一些代码来更新Activity的onActivityResult方法中的数据:

                //save state
                editorUserInfoSharedPreferences.putString("userType", productId);
                editorUserInfoSharedPreferences.putInt("paymentStatus", 1);
                editorUserInfoSharedPreferences.commit();
                editorUserInfoSharedPreferences.apply();

                int paymentStatus = userInfoSharedPreferences.getInt("paymentStatus", 0);
                String userType = userInfoSharedPreferences.getString("userType", "");
                Log.e(TAG, "paymentStatus 1700: "+ paymentStatus);
                Log.e(TAG, "userType 1700: "+ userType);

日志中的数据是正确的。但在那之后,我点击了一个按钮并从sharePreference获取数据:

    int paymentStatus = userInfoSharedPreferences.getInt("paymentStatus", 0);
                String userType = 
 userInfoSharedPreferences.getString("userType", "");
                Log.e(TAG, "paymentStatus 1532: "+ paymentStatus);
                Log.e(TAG, "userType 1530: "+ userType);

日志中的数据是旧数据。 这是我的日志:

E/MAINACTIVITY: paymentStatus 1700: 1
E/MAINACTIVITY: userType 1700: monthly_0
....
E/MAINACTIVITY: paymentStatus 1532: 0
E/MAINACTIVITY: userType 1530: 0

我该如何解决?提前谢谢你!

2 个答案:

答案 0 :(得分:0)

您可以将代码粘贴到init:editorUserInfoSharedPreferences& userInfoSharedPreferences。我猜你有一件事就是使用2个不同的共享偏好对象。

答案 1 :(得分:-1)

在editorUserInfoSharedPreferences上执行提交后,在onActivityResult中初始化userInfoSharedPreferences。

您正在使用旧的值,因为您使用的是共享偏好的旧对象。