我的程序列表很小,我想让用户保存它,而不是每次启动应用程序时都要填写它。
名单 :public static ArrayList<BeaconDevice> SavedBeacons;
通常最多包含5-10个BeaconDevice对象。
BeaconDevice是一个包含Beacon对象(来自AltBeacon库)和String格式名称的对象。
最好的方法是什么?
最佳答案
有一个用于此类内容的库,具有简单的解决方案
compile 'com.google.code.gson:gson:2.4'
因此,通过导入此文件,您可以像这样直接保存/检索您的清单:
保存 ::
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
Type listOfBecons = new TypeToken<List<BeaconDevice>>() {}.getType();
String strBecons = new Gson().toJson(SavedBeacons, listOfBecons);
preferences.edit().putString("BECON_LIST", strBecons).apply();
检索::
ArrayList<BeaconDevice> mSavedBeaconList = new Gson().fromJson(preferences.getString("BECON_LIST", ""), listOfBecons);