我正在使用共享偏好来存储一个int,这将是我创建的游戏的高分。问题是它根本没有存储。当我重启我的设备/关闭应用程序或任何高分都没有。有什么问题?
商店
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("your_int_key", highScore);
editor.commit();
检索
SharedPreferences sp1 = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
int highScoreSaved = sp1.getInt("your_int_key", 0);
如果您要我添加更多代码,请与我们联系。谢谢!
答案 0 :(得分:0)
获取SharedPreference
实例时尝试使用此功能:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this /* Current context */);
因此,键值对将存储在默认文件中,应用程序中的所有活动将共享该文件,无论您传递给它的上下文。
但是,如果您不想使用该文件的默认实例,则可以编辑代码以使其使用应用程序上下文:
SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("prefs_file", Context.MODE_PRIVATE);
通常我更喜欢第一种方法,因为它更灵活,易于使用单实例文件。