Android – 如何在代码中设置偏好
我有一个Android应用程序,我有我的喜好在一个XML文件,工作正常。 我现在想要使用代码来设置其中一个首选项,而不是显示整个首选项屏幕,我将如何去做这件事?
我假设您偏好的是您的应用程序的偏好,而不是Android手机设置。
要在您的应用程序运行之间存储首选项,您需要执行以下操作
-
创build一个SharedPreferences对象
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
stringn标识你的首选项,第二个参数是他们将被访问的模式
-
实例化一个Editor对象
SharedPreferences.Editor editor = settings.edit();
注意:不要尝试settings.editor.edit(),这将不会产生一个持久对象,下面的代码将无法工作
-
将您的偏好写入缓冲区
editor.put...(String, value)
有很多put函数,putString,putBoolean等。String是关键字(“版本”,“良好运行”),值是值(“1.5.2”,真)
-
冲洗缓冲区
editor.commit();
这实际上写入你的喜好。 如果您的应用程序在此行之前崩溃,则不会写入首选项。 还有一个logging的bug:commit()应该返回一个表示成功或失败的布尔值。 最后我检查它总是返回false。
这些偏好将通过手机存储,只有您的应用程序可以访问。
更多文档在这里
我试过,但没有工作:
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
试试这个:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
您可以使用下面的代码在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); }