我有这个代码:
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/