非常奇怪的问题 - 我使用的是Android开发的最新版本。这是我的代码:
public static final String MY_PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
Set<String> savedCityFare = editor.getStringSet(whatever);
有趣的是,编辑器没有可用的getter方法。我做错了什么?
答案 0 :(得分:2)
有趣的是,没有任何getter方法可用于编辑器
getter方法位于SharedPreferences
。只有setter方法在SharedPreferences.Editor
上。可以将SharedPreferences.Editor
视为构建器样式类,用于创建和执行“事务”以更新共享首选项。
答案 1 :(得分:2)
如果您查看http://developer.android.com/reference/android/content/SharedPreferences.Editor.html处的文档,您会发现SharedPreferences.Editor类只定义了putX()方法。如果您想使用getter,则不需要编辑器,只需要SharedPreferences对象。
SharedPreferences preferences = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
Set<String> savedCityFare = preferences.getStringSet(whatever);
我还建议使用PreferenceManager.getDefaultSharedPreferences()来获取SharedPreferences对象。
在SharedPreferences中添加值:
PreferenceManager.getDefaultSharedPreferences(YOUR_CONTEXT).edit().putXXX(YOURKEY,YOURVALUE).commit();
//这将直接为您的SharedPreferences节省价值。
如果要从首选项中获取值:
PreferenceManager.getDefaultSharedPreferences(YOUR_CONTEXT).getXXX(YOUR_KEY);
//这将返回您存储的值。
如果要在整个应用程序中维护单个SharedPreferences实例,则使用默认首选项。