Android – 如何在代码中设置偏好

我有一个Android应用程序,我有我的喜好在一个XML文件,工作正常。 我现在想要使用代码来设置其中一个首选项,而不是显示整个首选项屏幕,我将如何去做这件事?

我假设您偏好的是您的应用程序的偏好,而不是Android手机设置。

要在您的应用程序运行之间存储首选项,您需要执行以下操作

  1. 创build一个SharedPreferences对象

    SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE); 

    stringn标识你的首选项,第二个参数是他们将被访问的模式

  2. 实例化一个Editor对象

     SharedPreferences.Editor editor = settings.edit(); 

    注意:不要尝试settings.editor.edit(),这将不会产生一个持久对象,下面的代码将无法工作

  3. 将您的偏好写入缓冲区

     editor.put...(String, value) 

    有很多put函数,putString,putBoolean等。String是关键字(“版本”,“良好运行”),值是值(“1.5.2”,真)

  4. 冲洗缓冲区

     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); }