android如何用sp存儲和獲取一個集合

存儲和獲取

public class SharedPreferencesHelper {
    private    SharedPreferences        sharedPreferences;
    private static SharedPreferencesHelper mSharedPreferencesHelper;
    /*
     * 保存手機裏面的名字
     */private SharedPreferences.Editor editor;

    @SuppressLint("CommitPrefEdits")
    public SharedPreferencesHelper(Context context, String FILE_NAME) {
        sharedPreferences = context.getSharedPreferences(FILE_NAME,
                                                         Context.MODE_PRIVATE);
        editor = sharedPreferences.edit();
    }

    public static SharedPreferencesHelper getSp(){

        if (mSharedPreferencesHelper==null){
            mSharedPreferencesHelper = new SharedPreferencesHelper(MyApplication.getContext(),"normal");
        }
        return mSharedPreferencesHelper;
    }
    
   
    /**
     * // 保存公告List集合
     */
    public  void saveNoticeList(List<NoticeItem> noticeItemList) {
        String json = new Gson().toJson(noticeItemList);
        putString("notice_item", json);
    }

    /**
     *獲取公告List集合
     */
    public List<NoticeItem> getNoticeList() {
        List<NoticeItem> listTemp = new ArrayList<>();
        try {
            String json = getString("notice_item");
            if (StringUtils.isEmpty(json)){
                return listTemp;
            }
            listTemp = new Gson().fromJson(json, new TypeToken<ArrayList<NoticeItem>>() {
            }.getType());
        } catch (Exception e) {
            LogUtil.e(e);
        }
        return listTemp;
    }

    /**
     * 獲取保存的數據
     */
    public Object getSharedPreference(String key, Object defaultObject) {
        if (defaultObject instanceof String) {
            return sharedPreferences.getString(key, (String) defaultObject);
        } else if (defaultObject instanceof Integer) {
            return sharedPreferences.getInt(key, (Integer) defaultObject);
        } else if (defaultObject instanceof Boolean) {
            return sharedPreferences.getBoolean(key, (Boolean) defaultObject);
        } else if (defaultObject instanceof Float) {
            return sharedPreferences.getFloat(key, (Float) defaultObject);
        } else if (defaultObject instanceof Long) {
            return sharedPreferences.getLong(key, (Long) defaultObject);
        } else {
            return sharedPreferences.getString(key, null);
        }
    }

    /**
     * 移除某個key值已經對應的值
     */
    public void remove(String key) {
        editor.remove(key);
        editor.commit();
    }

    /**
     * 清除所有數據
     */
    public void clear() {
        editor.clear();
        editor.commit();
    }

    /**
     * 查詢某個key是否存在
     */
    public Boolean contain(String key) {
        return sharedPreferences.contains(key);
    }

    /**
     * 返回所有的鍵值對
     */
    public Map<String, ?> getAll() {
        return sharedPreferences.getAll();
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章