我有一个 Android 应用程序,其中我在 XML 文件中有我的偏好,它工作正常。我现在想使用代码设置其中一个首选项,而不是显示整个首选项屏幕,我该怎么做呢?
stonedonkey
问问题
50641 次
3 回答
123
我假设首选项是指您的应用程序的首选项,而不是 Android 手机设置。
要在您的应用程序运行之间存储首选项,您需要执行以下操作
创建一个 SharedPreferences 对象
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
字符串 n 标识您的偏好,第二个参数是它们将被访问的模式
实例化一个编辑器对象
SharedPreferences.Editor editor = settings.edit();
注意:不要尝试 settings.editor.edit(),这不会产生持久对象,下面的代码也不起作用
将您的首选项写入缓冲区
editor.put...(String, value)
有许多put函数,putString,putBoolean等。String是key(“version”,“good run”),value是value(“1.5.2”,true)
冲洗缓冲区
editor.commit();
这实际上写入了您的偏好设置。如果您的应用程序在此行之前崩溃,则不会写入首选项。还有一个记录在案的错误:commit() 应该返回一个指示成功或失败的布尔值。最后我检查它总是返回假。
这些首选项将存储在手机上,并且只能由您的应用程序访问。
更多文档在这里
于 2009-02-16T06:02:11.153 回答
8
我试过这个但没有奏效:
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
试试这个:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
于 2011-12-01T17:04:33.197 回答
3
您可以使用以下代码在 sharedpreferences 中保存一些内容
public static void save(String valueKey, String value) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
SharedPreferences.Editor edit = prefs.edit();
edit.putString(valueKey, value);
edit.commit();
}
阅读偏好:
public static String read(String valueKey, String valueDefault) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
return prefs.getString(valueKey, valueDefault);
}
于 2016-04-29T05:32:54.730 回答