android - SharedPreferences 不保存值(value)

标签 android sharedpreferences

我有这个代码:

public class Register extends Activity {

    private LinearLayout layout;
    private TextView debug;
    public static final String USER_CONFIG = "UserConfigs";

    @Override
    public void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);

        SharedPreferences settings = getSharedPreferences(USER_CONFIG, MODE_PRIVATE);
        boolean registered = settings.getBoolean("registered", false);

        layout = (LinearLayout) findViewById(R.id.layoutRegister);

        if (!registered) {
            debug = new TextView(this);
            debug.setText("You have to register");
            layout.addView (debug);

            //TO DO user registration

            settings.edit().putBoolean("registered", true);
            settings.edit().commit(); 
        } else {
            debug = new TextView(this);
            debug.setText("You have already registered");
            layout.addView (debug);
            //TO DO skip to next screen
        }
    }
}

但是当我重新启动我的应用程序时,我总是被注册为“false”。我也尝试在 onStop() 上提交它并得到相同的结果。我在这里看到了其他有这个问题的主题,但没有一个和我有同样的问题。

有什么想法吗?

最佳答案

你不能这样做:

settings.edit().putBoolean("registered", true);
settings.edit().commit(); 

您需要获取编辑器对象,然后进行更改:

Editor editor = settings.edit();
editor.putBoolean(...);
editor.commit();

关于android - SharedPreferences 不保存值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13288587/

相关文章:

java - 尝试从 URL 读取 xml 时发生 ssl.SSLHandshakeException

java - 将文件存储为 android list 的一部分以进行部署然后打开它?

java - 共享首选项不保存或加载数据

java - 使用 Android Studio 从 SharedPreferences 的 Arraylist 中删除项目

android - 创建 ListView 的共享首选项

java - Android 中的 SharedPref 在按下按钮时不保存数据

android - 从 PhoneGap(Android) 访问外部 URL(Google.com)

android - 错误:Project 'app' not found in root project 'ProjectName'

android - 调用 setAdapter 时 ViewPager 并不总是刷新,FragmentStatePagerAdapter

android - 如何让 Spinner 的默认值作为上次保存的值?Android