为了账号安全,请及时绑定邮箱和手机立即绑定

点击事件出不来

点击事件出不来

我点了没反应是不是跟这个mContext为null有关我的CartProvider类public class CartProvider {    public static final String JSON_CART = "json_cart";    private  Context mContext;    //优化过的HashMap集合    private  SparseArray<GoodsBean> datas;    private static CartProvider cartProvider;    private  CartProvider(Context mContext) {        this.mContext = mContext;        datas = new SparseArray<>(100);        listToSparse();    }    public static CartProvider getInstance() {        if (cartProvider == null) {            cartProvider = new CartProvider(MyApplication.getContext());        }        return cartProvider;    }    private void listToSparse() {        List<GoodsBean> carts = getAllData();        //放到sparseArry中        if (carts != null && carts.size() > 0) {            for (int i = 0; i < carts.size(); i++) {                GoodsBean goodsBean = carts.get(i);                datas.put(Integer.parseInt(goodsBean.getProduct_id()), goodsBean);            }        }    }    private List<GoodsBean> parsesToList() {        List<GoodsBean> carts = new ArrayList<>();        if (datas != null && datas.size() > 0) {            for (int i = 0; i < datas.size(); i++) {                GoodsBean shoppingCart = datas.valueAt(i);                carts.add(shoppingCart);            }        }        return carts;    }    public List<GoodsBean> getAllData() {        return getDataFromLocal();    }    //本地获取json数据,并且通过Gson解析成list列表数据    public List<GoodsBean> getDataFromLocal() {        List<GoodsBean> carts = new ArrayList<>();        //从本地获取缓存数据        String saveJson = CacheUtils.getString(mContext, JSON_CART);        if (!TextUtils.isEmpty(saveJson)) {            //把数据转换成列表            carts = new Gson().fromJson(saveJson, new TypeToken<List<GoodsBean>>() {}.getType());        }        return carts;    }    public  void addData(GoodsBean cart) {        //添加数据        GoodsBean tempCart = datas.get(Integer.parseInt(cart.getProduct_id()));        if (tempCart != null) {            tempCart.setNumber(tempCart.getNumber() + cart.getNumber());        } else {            tempCart = cart;            tempCart.setNumber(cart.getNumber());        }        datas.put(Integer.parseInt(tempCart.getProduct_id()), tempCart);        commit();//保存数据    }    //保存数据    private void commit() {        //把parseArray转换成list        List<GoodsBean> carts = parsesToList();        //把转换成String        String json = new Gson().toJson(carts);        // 保存        CacheUtils.putString(mContext, JSON_CART, json);    }    public void deleteData(GoodsBean cart) {        //删除数据        datas.delete(Integer.parseInt(cart.getProduct_id()));        //保存数据        commit();    }    public void updataData(GoodsBean cart) {        //修改数据        datas.put(Integer.parseInt(cart.getProduct_id()), cart);        //保存数据        commit();    }    /**     * 根据Key查找书籍     *     * @param goods_bean     * @return     */    public GoodsBean findData(GoodsBean goods_bean) {        GoodsBean goodsBean = datas.get(Integer.parseInt(goods_bean.getProduct_id()));        if (goodsBean != null) {            return goods_bean;        }        return null;    }}
查看完整描述

1 回答

?
浪里小神龙

TA贡献16条经验 获得超0个赞

是的,上下文为空

查看完整回答
反对 回复 2019-11-18
  • 1 回答
  • 0 关注
  • 1017 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信