我的程序列表很小,我想让用户保存它,而不是每次启动应用程序时都要填写它。

名单 :

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);

10-08 09:11