我用HashMap
来存储我使用API收到的数据。之后,我使用SharedPreferences来存储接收到的HashMap数据。存储部分完成。我可以看到我想用SharedPreferences存储的记录数。检索hashmap数据SharedPreferences
下面是代码来保存数据:
if (result != null && result.length() > 0)
{
for (int j = 0; j < result.length(); j++)
{
JSONObject resultObj = result.getJSONObject(j);
String label_id = resultObj.getString("label_id");
String arabic = resultObj.getString("arabic");
String english = resultObj.getString("english");
String key = resultObj.getString("key");
//Create a new model and set the received value
LabelModel labelModel = new LabelModel();
labelModel.setLabelId(label_id);
labelModel.setArabic(arabic);
labelModel.setEnglish(english);
labelModel.setKey(key);
int label = Integer.parseInt(label_id);
//Put the value
map.put(label, labelModel);
}
}
//With the below line, I stored the hashMap data using SharedPreferences
Pref.setValue(mActivity, AppPrefrences.PREF_LABELS, map);
在上述步骤之后,我也跟着这组代码设置和得到从SharePreferences的值,这是我存储在应用程序中使用SharedPreferences 。 对于这一点,我用这个下面的代码:
public static String PREF_LABELS ="labels";
public static void setValue(@NonNull Context context, String key, Object obj) {
Pref.openPref(context);
Editor prefsPrivateEditor = Pref.sharedPreferences.edit();
prefsPrivateEditor.putString(key, String.valueOf(obj));
prefsPrivateEditor.commit();
prefsPrivateEditor = null;
Pref.sharedPreferences = null;
}
@Nullable
public static String getValue(@NonNull Context context, String key, Object obj) {
Pref.openPref(context);
String result = Pref.sharedPreferences.getString(key, String.valueOf(obj));
Pref.sharedPreferences = null;
return result;
}
现在,我想找回我存储在SharedPreferences的数据。 这里是我用来检索数据的代码:当调试应用程序
String labels = Pref.getValue(mActivity, AppPrefrences.PREF_LABELS, "");
,我得到标签以下格式的值。我收到的记录数量相同。
格式是这样的:
{572=com.*****[email protected], 598=com.*****[email protected], 590=com.*****[email protected], 103=com.*****..........}
我怎样才能得到从这种格式的每个数据?
店resultObj.toString(如字符串比作为检索字符串并解析是最好的做法! –