如何存储哈希映射到Android,这样它会被重用使用共享preferences重新启动应用程序时? [英] How to Store Hashmap to android so that it will be reuse when application restart using shared preferences?

查看:152
本文介绍了如何存储哈希映射到Android,这样它会被重用使用共享preferences重新启动应用程序时?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想HashMap来存储我的Andr​​oid应用程序,当重新启动时,它显示的HashMap的最后一次保存的值。

I want to store hashmap to my android application that when restart ,it shows last saved values of hashmap.

HashMap<Integer,String> HtKpi=new HashMap<Integer,String>(); 

是我的HashMap和44值是动态存储在其中。这工作正常! 现在,我要保存以备将来使用(应用程序启动或重新使用)。

is my hashmap and 44 values are stored in it dynamically. That works fine!!! now,I want to store it for future use(Application restart or reuse).

推荐答案

您可以将其序列化到JSON和存储在preferences生成的字符串。然后,当应用程序重新启动获得preferences字符串和反序列化。

You could serialize it to json and store the resulting string in the preferences. Then when application restarts get the string from preferences and deserialize it.

编辑:

要做到这一点,您可以使用谷歌GSON 的例如。

To do so you can use Google Gson for example.

您需要换地图中的一类:

You will need to wrap your map in a class:

public class MapWrapper {
  private HashMap<Integer, String> myMap;
  // getter and setter for 'myMap'
}

要保存图:

Gson gson = new Gson();
MapWrapper wrapper = new MapWrapper();
wrapper.setMyMap(HtKpi);
String serializedMap = gson.toJson(wrapper);
// add 'serializedMap' to preferences

要检索图:

String wrapperStr = preferences.getString(yourKey);
MapWrapper wrapper = gson.fromJson(wrapperStr, MapWrapper.class);
HashMap<Integer, String> HtKpi = wrapper.getMyMap(); 

这篇关于如何存储哈希映射到Android,这样它会被重用使用共享preferences重新启动应用程序时?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆