使用RecyclerView实现购物车
来源:互联网 发布:单片机一键信号发射 编辑:程序博客网 时间:2024/05/16 06:24
主布局
主代码
import android.content.Context;import android.content.SharedPreferences;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.bwie.jd.Adapter.MyShopCarRecyclerViewAdapter;import com.bwie.jd.Bean.ShopCarBean;import com.bwie.jd.R;import com.bwie.jd.network.OkhttpUtils;import com.bwie.jd.network.ResultCallback;import com.bwie.jd.other.DividerItemDecoration;import com.squareup.okhttp.Request;import java.util.List;import static com.bwie.jd.R.id.fg_shoppingcar_rlFoot_checkbox;import static com.bwie.jd.R.id.fg_shoppingcar_rlFoot_money;import static com.bwie.jd.R.id.fg_shoppingcar_rlHead_address;import static com.bwie.jd.R.id.fg_shoppingcar_rlHead_msg;import static com.bwie.jd.R.id.fg_shoppingcar_rlHead_tv_edit;import static com.bwie.jd.R.id.fg_shoppingcar_rv;public class Fragment_Shoppingcar extends Fragment { private ImageView rlHead_address; private TextView rlHead_tv_edit; private ImageView rlHead_msg; private RecyclerView rv; private CheckBox rlFoot_checkbox; private TextView rlFoot_money; private SharedPreferences sp; String url = "http://169.254.111.252/mobile/index.php?act=member_cart&op=cart_list"; private boolean islogin; private String key; private MyShopCarRecyclerViewAdapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_shoppingcar, null); initView(view); if(islogin){//登录状态 showMyShoppingCar(); rlFoot_checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { if(b){ adapter.setCheckbox(true); Toast.makeText(getContext(), "全选了", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(getContext(), "未全选", Toast.LENGTH_SHORT).show(); adapter.setCheckbox(false); } } }); }else{//未登录状态 Toast.makeText(getContext(), "未登录", Toast.LENGTH_SHORT).show(); } return view; } /** * 显示RecyclerView */ private void showMyShoppingCar() { url+="&key="+key; OkhttpUtils.getAsyn(url, new ResultCallback() { @Override public void onError(Request request, Exception e) { Log.e("TAG","获取失败"); } @Override public void onResponse(String response) { Log.e("TAG","获取成功"); String s = response.toString(); ShopCarBean bean = ShopCarBean.objectFromData(s); List list = bean.getDatas().getCart_list().get(0).getGoods(); adapter = new MyShopCarRecyclerViewAdapter(getContext(),list); rv.setLayoutManager(new LinearLayoutManager(getContext())); rv.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL_LIST)); rlFoot_money.setText(bean.getDatas().getSum()); rv.setAdapter(adapter); } }); } /** * 初始化数据 * @param view */ private void initView(View view) { rlHead_address = (ImageView) view.findViewById(fg_shoppingcar_rlHead_address); rlHead_tv_edit = (TextView) view.findViewById(fg_shoppingcar_rlHead_tv_edit); rlHead_msg = (ImageView) view.findViewById(fg_shoppingcar_rlHead_msg); rv = (RecyclerView) view.findViewById(fg_shoppingcar_rv); rlFoot_checkbox = (CheckBox) view.findViewById(fg_shoppingcar_rlFoot_checkbox); rlFoot_money = (TextView) view.findViewById(fg_shoppingcar_rlFoot_money); sp = getActivity().getSharedPreferences("login", Context.MODE_PRIVATE); islogin = sp.getBoolean("islogin", false); key = sp.getString("key", ""); }}
适配器
package com.bwie.jd.Adapter;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.CheckBox;import android.widget.ImageView;import android.widget.TextView;import com.bumptech.glide.Glide;import com.bwie.jd.Bean.ShopCarBean;import com.bwie.jd.R;import com.bwie.jd.other.ToastUtils;import com.octopus.amountview.AmountView;import java.util.ArrayList;import java.util.List;import jp.wasabeef.glide.transformations.CropCircleTransformation;public class MyShopCarRecyclerViewAdapter extends RecyclerView.Adapter{ Context context; List list = new ArrayList<>(); private boolean ischeck; public MyShopCarRecyclerViewAdapter(Context context, List list) { this.context = context; this.list = list; } public void setCheckbox(boolean ischeck){ this.ischeck = ischeck; notifyDataSetChanged(); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.shopcar_rv_item, null); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { Glide.with(context).load(list.get(position).getGoods_image_url()) .bitmapTransform(new CropCircleTransformation(context)) .into(holder.shoppingcar_item_iv); holder.shoppingcar_item_tv_name.setText(list.get(position).getGoods_name()); holder.shoppingcar_item_tv_money.setText("¥"+list.get(position).getGoods_price()); holder.amountView.setCurrentValue(Integer.parseInt(list.get(position).getGoods_num()+"")); holder.amountView.setOnChangeListener(new AmountView.OnChangeListener() { @Override public void onChanged(int value) { ToastUtils.showToast("--->" + value); } }); if(ischeck){ holder.shoppingcar_item_cb.setChecked(true); }else{ holder.shoppingcar_item_cb.setChecked(false); } } @Override public int getItemCount() { return list.size(); } public class ViewHolder extends RecyclerView.ViewHolder { CheckBox shoppingcar_item_cb; ImageView shoppingcar_item_iv; TextView shoppingcar_item_tv_name; TextView shoppingcar_item_tv_money; AmountView amountView; public ViewHolder(View itemView) { super(itemView); shoppingcar_item_cb = itemView.findViewById(R.id.shoppingcar_item_cb); shoppingcar_item_iv = itemView.findViewById(R.id.shoppingcar_item_iv); shoppingcar_item_tv_name = itemView.findViewById(R.id.shoppingcar_item_tv_name); shoppingcar_item_tv_money = itemView.findViewById(R.id.shoppingcar_item_tv_money); amountView = itemView.findViewById(R.id.shoppingcar_item_av); } }}
阅读全文
0 0
- 使用RecyclerView实现购物车
- 使用RecyclerView+OkHttp实现购物车
- RecyclerView实现购物车
- 购物车Recyclerview实现
- RecyclerView实现购物车
- Recyclerview嵌套Recyclerview实现简单购物车
- RecyclerView 实现购物车功能
- Android-RecyclerView实现购物车简单功能
- Android-RecyclerView实现购物车简单功能
- 购物车Recyclerview
- 用RecyclerView多布局实现购物车+随便逛一逛
- RecyclerView实现购物车的全选、反选功能
- Android-RecyclerView--实现一级购物车简单功能
- Android 双RecyclerView嵌套实现购物车逻辑
- RecyclerView和购物车的简单结合使用
- Android 实现RecyclerView嵌套RecyclerView 实现购物车的全选 反选 单选 商家全选
- 使用Session实现购物车
- 使用cookie实现购物车
- leetcode---rotate-list---链表
- LintCode/LeetCode全排列系列问题--Permutations I 和 II, N-Queens I 和 II,数独问题
- thymeleaf的使用笔记
- 10月25日 c语言 读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*
- 实验报告四
- 使用RecyclerView实现购物车
- CircularReveal
- C语言练习题(2)
- android手机客户端测试体系
- MarkDown基本语法
- 1411矩阵取数问题V3
- 简单banner加载网络上的图片
- Java读取properties文件连接数据库
- linux 测试是否能访问端口