我目前正在使用Java在Android Studio中制作一个简单的RPG,并且无法确定存储和修改游戏变量的最佳方式,例如玩家名称,金钱等。
我看过的视频和资源提供了多种解决方案,例如使用捆绑包将变量传递到不同的意图,使用单例,使用共享首选项或仅使用静态变量。
最初,我计划在主活动中使用'PlayerInfo'类的实例来存储信息,并使用bundle来传递数据,但是,因为几乎每个活动都需要数据,这是最好的方法?
感谢您的帮助!
答案 0 :(得分:1)
在您的情况下,理想的选择是使用SharedPreferences
并将项目存储为键值对!您可以这样写入sharedpreferences文件:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();
以这种方式从Sharedpreferences文件中读取:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
如果您认真对待,这是一个关于共享偏好的完整tutorial!
注意: Sharedpreferences
只有在您保存的数据很少的情况下才是一个不错的选择,如果您的数据很大并且两者之间存在关系,则会建议您使用{{ 3}}或Sqlite