不必创建共享首选项?

时间:2016-11-17 22:28:30

标签: java android sharedpreferences

我试图在我已制作的Android应用上保存信息。我想保存一个名字," Robert"。为此,我一直在查看共享首选项,但我找不到解释如何创建SharedPreferences的教程。

所有教程都是这样开始的:

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);

但是他们没有解释getPreferences()从哪里获取对象。

此对象(SharedPreferences对象)何时创建?它是否与上下文一起创建?它是否与每项活动一起创建?

我对Android很新,但是一个中级(减去)Java程序员。

2 个答案:

答案 0 :(得分:2)

像这样创建SharedPreferences

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
 editor.putString("name", "Robert");
 editor.commit(); //Or use editor.apply()

然后你会再次得到它们

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
  String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.

因此,getString()获取之前存储的值,如果尚未存储“name”字符串,则返回默认值。

您存储的对象保存在系统中,并且可以随时抓取。

<强>更新 getSharedPreferences()方法返回SharedPreferences.Editor接口。 根据{{​​3}}

  

用于修改SharedPreferences对象中的值的接口。所有   您在编辑器中所做的更改是批处理的,而不是复制回到   原始SharedPreferences,直到您调用commit()或apply()

更新2: android docs包含有关SharedPreferences存储的更多信息。

答案 1 :(得分:1)

SharedPreferences作为xml文件存储在应用程序的数据文件夹中。您context使用的getSharedPreferences无关紧要。它将从该文件中提取这些首选项。第一次加载后,首选项文件将在进程范围内缓存,因此您将在每次后续getSharedPreferences调用时返回相同的对象(即使它们来自不同的活动)。

更多信息herehere