请选择 进入手机版 | 继续访问电脑版
阳光沙滩博客现金打赏设置邀请好友最新视频下载
+发表新主题
秋落枫雪伊人醉 发布于2018-7-18 09:15 272 次浏览 6 位用户参与讨论
跳转到指定楼层
本帖的地址:https://bbs.sunofbeaches.com/thread-6351-1-1.html
版权声明:本文为作者所有,未经作者允许不得转载--->温馨提示:请加上原文地址!
QQ图片20180718091051.jpg QQ图片20180718091108.png QQ图片20180718091149.png QQ图片20180718091214.png



这个是什么问题啊?哪位大佬帮忙解决下

转载请说明出处,本文地址:https://bbs.sunofbeaches.com/thread-6351-1-1.html

帖子的最近访客

【大家可以通过搜索让相关资源!】【有疑问可以到提问模块提问哦!】【如果我去有资源也希望可以分享】【谢谢大家!by bbs.sunofbeaches.com】

已有6人评论

黄永康 发表于 2018-7-19 14:06:08
文件找不到,你看看你在那里进行了IO操作,这个路径没有。你把代码贴出来吧。不错不错,支贴log了。最好还是复制代码,如果不会发代码,可以去看新手指引那里。
秋落枫雪伊人醉 发表于 2018-7-20 10:23:06
黄永康 发表于 2018-7-19 14:06
文件找不到,你看看你在那里进行了IO操作,这个路径没有。你把代码贴出来吧。不错不错,支贴log了。最好还 ...

额...要复制哪些代码啊?
秋落枫雪伊人醉 发表于 2018-7-20 10:24:33
黄永康 发表于 2018-7-19 14:06
文件找不到,你看看你在那里进行了IO操作,这个路径没有。你把代码贴出来吧。不错不错,支贴log了。最好还 ...
  1. package com.qiangyu.shopcart.utils;

  2. import android.content.Context;
  3. import android.text.TextUtils;
  4. import android.util.Log;
  5. import android.util.SparseArray;

  6. import com.google.gson.Gson;
  7. import com.google.gson.reflect.TypeToken;
  8. import com.qiangyu.app.MyApplication;
  9. import com.qiangyu.home.bean.GoodsBean;
  10. import com.qiangyu.utils.CacheUtils;

  11. import java.util.ArrayList;
  12. import java.util.List;

  13. public class CartStorage {

  14.     public static final String JSON_CART = "json_cart";
  15.     private static final String TAG = "CartStorage";
  16.     private static CartStorage instance;
  17.     private final Context mContext;
  18.     //SparseArray的性能优于HashMap
  19.     private SparseArray<GoodsBean> mSparseArray;

  20.     private CartStorage(Context context) {
  21.         this.mContext = context;
  22.         //把之前存储的数据读取出来
  23.         mSparseArray = new SparseArray<>(100);
  24.         listToSparseArray();
  25.     }

  26.     /**
  27.      * 从本地读取到数据加入到SparseArray中
  28.      */
  29.     private void listToSparseArray() {
  30.         List<GoodsBean> goodsBeansList = getAllData();
  31.         //把List数据转换成SparseArray
  32.         for (int i = 0; i < goodsBeansList.size(); i++) {
  33.             GoodsBean goodsBean = goodsBeansList.get(i);
  34.             mSparseArray.put(Integer.parseInt(goodsBean.getProduct_id()), goodsBean);
  35.         }
  36.     }

  37.     /**
  38.      * 获取本地所有的数据
  39.      *
  40.      * @return
  41.      */
  42.     public List<GoodsBean> getAllData() {
  43.         List<GoodsBean> goodsBeanList = new ArrayList<>();
  44.         //1.从本地获取
  45.         String json = CacheUtils.getString(mContext, JSON_CART);
  46.         //2.使用Gson转换成列表
  47.         if (!TextUtils.isEmpty(json)) {
  48.             //把String转换成List
  49.             goodsBeanList = new Gson().fromJson(json, new TypeToken<List<GoodsBean>>() {}.getType());
  50.         }
  51.         return goodsBeanList;
  52.     }

  53.     //得到购物车示例
  54.     public static CartStorage getInstance() {
  55.         if (instance == null) {
  56.             instance = new CartStorage(MyApplication.getContext());
  57.         }
  58.         return instance;
  59.     }

  60.     /**
  61.      * 添加数据
  62.      *
  63.      * @param goodsBean
  64.      */
  65.     public void addData(GoodsBean goodsBean) {
  66.         //1.添加到内存中SparseArray,如果当前数据已存在,就修改number递增
  67.         GoodsBean tempData = mSparseArray.get(Integer.parseInt(goodsBean.getProduct_id()));
  68.         if (tempData != null) {
  69.             tempData.setNumber(tempData.getNumber() + 1);
  70.         } else {
  71.             tempData = goodsBean;
  72.             tempData.setNumber(1);
  73.         }
  74.         //同步到内存中
  75.         mSparseArray.put(Integer.parseInt(goodsBean.getProduct_id()),tempData);
  76.         //2.同步到本地
  77.         saveLocal();
  78.     }

  79.     /**
  80.      * 删除数据
  81.      * @param goodsBean
  82.      */
  83.     public void deleteData(GoodsBean goodsBean){
  84.         //1.内存中删除
  85.         mSparseArray.delete(Integer.parseInt(goodsBean.getProduct_id()));
  86.         //2.把内存的保存到本地
  87.         saveLocal();
  88.     }

  89.     /**
  90.      * 更新数据
  91.      * @param goodsBean
  92.      */
  93.     public void updateData(GoodsBean goodsBean){
  94.         //1.内存中更新
  95.         mSparseArray.put(Integer.parseInt(goodsBean.getProduct_id()),goodsBean);
  96.         //2.同步到本地
  97.         saveLocal();
  98.     }

  99.     /**
  100.      * 保存数据到本地
  101.      */
  102.     private void saveLocal() {
  103.         //1.SparseArray转换成List
  104.         List<GoodsBean> goodsBeanList = sparseToList();
  105.         //2.把列表转换成String类型
  106.         String json = new Gson().toJson(goodsBeanList);
  107.         //3.把String数据保存
  108.         CacheUtils.saveString(mContext,JSON_CART,json);
  109.     }

  110.     private List<GoodsBean> sparseToList() {
  111.         List<GoodsBean> goodsBeanList = new ArrayList<>();
  112.         for (int i = 0; i < mSparseArray.size(); i++) {
  113.             GoodsBean goodsBean = mSparseArray.valueAt(i);
  114.             goodsBeanList.add(goodsBean);
  115.         }
  116.         return goodsBeanList;
  117.     }

  118. }
复制代码
黄永康 发表于 2018-7-23 08:24:34

你保存到本地的时候,是不是有文件操作了 。另外你这个是警告,已经crash了吗?
黄永康 发表于 2018-7-23 08:25:03
你直接看log提示就知道了,找不到xxx文件,你要确定这个文件是有什么用的,才知道你哪里调用出问题了。
秋落枫雪伊人醉 发表于 2018-7-23 08:54:36
黄永康 发表于 2018-7-23 08:25
你直接看log提示就知道了,找不到xxx文件,你要确定这个文件是有什么用的,才知道你哪里调用出问题了。
  1. package com.qiangyu.utils;

  2. import android.content.Context;
  3. import android.content.SharedPreferences;
  4. import android.util.Log;

  5. import static android.support.constraint.Constraints.TAG;


  6. /**
  7. * 缓存工具类
  8. */
  9. public class CacheUtils {

  10.     public static final String QIANGYU = "qiangyu";

  11.     /**
  12.      * 得到保存的String类型的数据
  13.      * @param context
  14.      * @param key
  15.      * @return
  16.      */
  17.     public static String getString(Context context, String key) {
  18.         SharedPreferences sp = context.getSharedPreferences(QIANGYU, Context.MODE_PRIVATE);
  19.         return sp.getString(key,"");
  20.     }

  21.     /**
  22.      * 保存String类型数据
  23.      * @param context   上下文
  24.      * @param key       键
  25.      * @param value     值
  26.      */
  27.     public static void saveString(Context context, String key,String value) {
  28.         SharedPreferences sp = context.getSharedPreferences(QIANGYU, Context.MODE_PRIVATE);
  29.         sp.edit().putString(key,value).commit();
  30.     }
  31. }
复制代码

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ| 《网站免责声明》|小黑屋| 阳光沙滩(sunofbeaches.com)  

Copyright © 2001-2013 Comsenz Inc.   All Rights Reserved.

Powered by Discuz! X3.2( 粤ICP备14093694号 )

快速
回复
返回
列表
返回
顶部