我正在使用共享首选项,并且在没有找到首选项时希望默认值为1.
我的代码
int currentRadio;
...
SharedPreferences prefs = getPreferences(MODE_PRIVATE);
currentRadio = prefs.getInt("radioSelected", 1);
我不确定为什么我的默认值不是1。
要测试我会从手机上卸载应用程序,然后从android studio将应用程序启动到我的手机。每次我得到2作为默认值。但是,如果我只是清除应用程序中的数据,我会得到1作为默认值。
感谢任何帮助,谢谢。
答案 0 :(得分:2)
通过这个:
SharedPreferences sp = getSharedPreferences("your_prefs",Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("your_int_key", yourIntValue);
editor.commit();
然后你可以得到它:
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
int myIntValue = sp.getInt("your_int_key", -1);
SharedPreference接口允许您访问xml文件,并通过其编辑器轻松修改它。该文件存储在/data/data/com.your.package/shared_prefs/中,您可以通过此SharedPreference API访问它
实际上,您还需要为getInt提供一个默认值,当使用无法找到密钥your_int_key的int时返回该值。像这样:
int myIntValue = sp.getInt("your_int_key", -1);
其中-1是默认值
此外,如果您使用API 9或更高版本,则应使用apply()而不是commit()
答案 1 :(得分:0)
声明prefs,如:
prefs = PreferenceManager.getDefaultSharedPreferences(context);
答案 2 :(得分:0)
由于您错误地实施了共享偏好,这将会发生。 做一件事在你的应用程序中搜索关键“radioSelected”。如果在任何其他地方找到将值保存在共享首选项中,则将其评论。
或者只是分享您的完整共享偏好文件。
答案 3 :(得分:-2)
如果使用android-21,问题不在于偏好。它与备份管理器
添加清单文件
android:allowBackup="false"