【发布时间】:2015-06-21 22:06:44
【问题描述】:
我一直试图让 SharedPreferences 工作,但没有成功。我一直在检查进入保存的所有值,一切看起来都正常工作;但是,当我去检索已保存的数据时,却找不到。我尝试了几种不同的方法,包括 getSharedPreferences(key, Context.MODE_PRIVATE) 来获取首选项。我当前使用的方法是解决其他人的答案,但不是我的。
保存:
Log.i("MineStalker", "Saving");
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit();
Set<String> server_set = new HashSet<String>();
for (MinecraftServer server : servers) {
server_set.add(server.getDataString());
Log.i("MineStalker", "Save loop");
}
Log.i("MineStalker", "Save size: " + server_set.size());
editor.putStringSet("server_data", server_set);
editor.commit();
获取:
servers = new ArrayList<>();
Set<String> server_set = new HashSet<String>();
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
preferences.getStringSet("server_data", server_set);
Log.i("MineStalker", "Create size: " + server_set.size());
总结一下,我保存的数据没有显示出来。
【问题讨论】:
-
调用getStringSet的时候是不是忘了把变量等同起来?