使用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);        }    }}

原创粉丝点击