一级的购物车

自定义View

package com.bawei.jiejiaqi0321.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.bawei.jiejiaqi0321.R;

public class Views1 extends LinearLayout {

    public View view;
    public Button jia,jian;
    public TextView cxgwcTextView2;
    private int s;

    public Views1(Context context) {
        super(context);
    }

    public Views1(Context context, AttributeSet attrs) {
        super(context, attrs);
        view = LayoutInflater.from(context).inflate(R.layout.views, this);
        jia = view.findViewById(R.id.jia);
        jian = view.findViewById(R.id.jian);
        cxgwcTextView2 = view.findViewById(R.id.cxgwcTextView2);
        s = Integer.parseInt(cxgwcTextView2.getText().toString());
        jia.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                s = s + 1;
                cxgwcTextView2.setText(String.valueOf(s));
                CallBackListener.jia(s);
            }
        });
        jian.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                s = s - 1;
                if (s < 1 ){
                    s = 1;
                    cxgwcTextView2.setText(String.valueOf(s));
                }
                cxgwcTextView2.setText(String.valueOf(s));
                CallBackListener.jian(s);
            }
        });
    }

    public Views1(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    CallBackListener CallBackListener;

    public void setCallBackListener(Views1.CallBackListener CallBackListener) {
        this.CallBackListener = CallBackListener;
    }

    public interface CallBackListener{
        public void jia(int s);
        public void jian(int s);
    }
}

MainActivity

package com.bawei.jiejiaqi0321.mvp.cxgwc.view;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;

import com.bawei.jiejiaqi0321.R;
import com.bawei.jiejiaqi0321.mvp.cxgwc.adapter.CXGWCAdapter;
import com.bawei.jiejiaqi0321.mvp.cxgwc.bean.CXGWCBean;
import com.bawei.jiejiaqi0321.mvp.cxgwc.contract.CXGWCContract;
import com.bawei.jiejiaqi0321.mvp.cxgwc.presenter.CXGWCPresenter;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;

public class Fragment3 extends Fragment implements CXGWCContract.IView {


    @BindView(R.id.cxgwcCheckBox)
    CheckBox cxgwcCheckBox;
    @BindView(R.id.cxgwcTextView)
    TextView cxgwcTextView;
    @BindView(R.id.cxgwcButton)
    Button cxgwcButton;
    Unbinder unbinder;
    private XRecyclerView cxgwcRecyclerView;
    private CXGWCPresenter cxgwcPresenter;
    private String usid;
    private String seid;
    private CXGWCBean cxgwcBean;
    private CXGWCAdapter cxgwcAdapter;
    private List<CXGWCBean.ResultBean> result;
    private int priceNum;
    private double price1;
    private double sum;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment3, container, false);
        cxgwcRecyclerView = view.findViewById(R.id.cxgwcRecyclerView);
        SharedPreferences sp = getActivity().getSharedPreferences("lButton", Context.MODE_PRIVATE);
        usid = sp.getString("usid", null);
        seid = sp.getString("seid", null);
        cxgwcRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
        cxgwcPresenter = new CXGWCPresenter(this);
        cxgwcPresenter.Presenter(usid, seid);
        cxgwcRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                cxgwcRecyclerView.refreshComplete();
                cxgwcPresenter.Presenter(usid, seid);
                cxgwcAdapter.notifyDataSetChanged();
            }

            @Override
            public void onLoadMore() {
                cxgwcRecyclerView.loadMoreComplete();
            }
        });

        unbinder = ButterKnife.bind(this, view);
        return view;

    }

    @Override
    public void onCXGWCSuccess(Object reutilcxgwc) {
        cxgwcBean = (CXGWCBean) reutilcxgwc;
        result = cxgwcBean.getResult();
        cxgwcAdapter = new CXGWCAdapter(getActivity(), result);
        cxgwcRecyclerView.setAdapter(cxgwcAdapter);
        cxgwcAdapter.notifyDataSetChanged();
        cxgwcCheckBox.setOnClickListener(null);
        cxgwcCheckBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                for (int i = 0; i < result.size(); i++) {
                    result.get(i).setCheck(cxgwcCheckBox.isChecked());
                }
                cxgwcAdapter.notifyDataSetChanged();
                Topast();
            }
        });
        cxgwcAdapter.setSonItemClickListener(new CXGWCAdapter.OnItemClickListener() {
            @Override
            public void TwoCall() {
                boolean Fast = true;
                for (int i = 0; i < result.size(); i++) {
                    Fast = Fast & result.get(i).isCheck();
                }
                cxgwcCheckBox.setChecked(Fast);
                Topast();
            }
        });
    }

    private void Topast() {
        double price = 0;
        for (int i = 0; i < result.size(); i++) {
            if (result.get(i).isCheck() == true) {
                price1 = result.get(i).getPrice();
                priceNum = result.get(i).getPriceNum();
                sum = price1 * priceNum;
                price = price + sum;
            }
        }
        cxgwcTextView.setText(String.valueOf(price));
/*        cxgwcButton.setText("去结算("+String.valueOf(priceNum)+")");*/
        cxgwcButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });
    }

    @Override
    public void onCXFGWCilure(String msgcxgwc) {

    }
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
        cxgwcPresenter.onDestroy();
    }
}

适配器

package com.bawei.jiejiaqi0321.mvp.cxgwc.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

import com.bawei.jiejiaqi0321.R;
import com.bawei.jiejiaqi0321.mvp.cxgwc.bean.CXGWCBean;
import com.bawei.jiejiaqi0321.view.Views1;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

public class CXGWCAdapter extends RecyclerView.Adapter<CXGWCAdapter.ViewHoldercxgwc>{

    private Context context;
    private List<CXGWCBean.ResultBean> result;
    private int count;

    public CXGWCAdapter(Context context, List<CXGWCBean.ResultBean> result) {
        this.context = context;
        this.result = result;
    }

    @NonNull
    @Override
    public CXGWCAdapter.ViewHoldercxgwc onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.cxgwc, viewGroup, false);
        ViewHoldercxgwc viewHoldercxgwc = new ViewHoldercxgwc(view);
        return viewHoldercxgwc;
    }

    @Override
    public void onBindViewHolder(@NonNull final CXGWCAdapter.ViewHoldercxgwc viewHoldercxgwc, final int i) {
        viewHoldercxgwc.cxgwcSimpleDraweeView.setImageURI(result.get(i).getPic());
        viewHoldercxgwc.cxgwcTextView.setText(result.get(i).getCommodityName());
        viewHoldercxgwc.cxgwcTextView1.setText("¥:"+result.get(i).getPrice()+"");
        viewHoldercxgwc.views1.cxgwcTextView2.setText(result.get(i).getPriceNum()+"");

        viewHoldercxgwc.cxgwcCheckBox1.setOnCheckedChangeListener(null);
        viewHoldercxgwc.cxgwcCheckBox1.setChecked(result.get(i).isCheck());
        viewHoldercxgwc.cxgwcCheckBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                result.get(i).setCheck(isChecked);
                SonItemClickListener.TwoCall();
            }
        });
        viewHoldercxgwc.views1.setCallBackListener(new Views1.CallBackListener() {
            @Override
            public void jia(int s) {
                result.get(i).setPriceNum(s);
                SonItemClickListener.TwoCall();
            }

            @Override
            public void jian(int s) {
                result.get(i).setPriceNum(s);
                SonItemClickListener.TwoCall();
            }
        });
        viewHoldercxgwc.btnDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 删除list中对应的数据
                result.remove(i);
                // 重新绑定数据
                notifyDataSetChanged();
                // 关闭侧滑菜单
                //胜利iewHolder.swipeMenuLayout.quickClose();
            }
        });
    }

    @Override
    public int getItemCount() {
        return result.size();
    }

    public class ViewHoldercxgwc extends RecyclerView.ViewHolder{
        private SimpleDraweeView cxgwcSimpleDraweeView;
        private TextView cxgwcTextView,cxgwcTextView1;
        private CheckBox cxgwcCheckBox1;
        private Button btnDelete;
        private Views1 views1;
        public ViewHoldercxgwc(@NonNull View itemView) {
            super(itemView);
            cxgwcSimpleDraweeView = itemView.findViewById(R.id.cxgwcSimpleDraweeView);
            cxgwcTextView= itemView.findViewById(R.id.cxgwcTextView);
            cxgwcTextView1= itemView.findViewById(R.id.cxgwcTextView1);
            cxgwcCheckBox1= itemView.findViewById(R.id.cxgwcCheckBox1);
            views1 = itemView.findViewById(R.id.Views1);
            btnDelete = itemView.findViewById(R.id.btnDelete);
        }
    }

    OnItemClickListener SonItemClickListener;

    public void setSonItemClickListener(OnItemClickListener sonItemClickListener) {
        SonItemClickListener = sonItemClickListener;
    }

    public interface OnItemClickListener{
        public void TwoCall();
    }
}

M

package com.bawei.jiejiaqi0321.mvp.cxgwc.modle;

import com.bawei.jiejiaqi0321.api.ApiService;
import com.bawei.jiejiaqi0321.mvp.cxgwc.bean.CXGWCBean;
import com.bawei.jiejiaqi0321.mvp.cxgwc.callback.CXGWCCallBack;
import com.bawei.jiejiaqi0321.mvp.cxgwc.contract.CXGWCContract;
import com.bawei.jiejiaqi0321.utils.RetrofisHttps;

import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.observers.DisposableObserver;
import io.reactivex.schedulers.Schedulers;

public class CXGWCModle implements CXGWCContract.IModle{

    private ApiService apiService;

    @Override
    public void Molde(String p, String p1, final CXGWCCallBack cxgwcCallBack) {
        apiService = RetrofisHttps.getInance().create(ApiService.class);
        apiService.facxgwc(p,p1)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new DisposableObserver<CXGWCBean>() {
                    @Override
                    public void onNext(CXGWCBean value) {
                        cxgwcCallBack.onCXGWCSuccess(value);
                    }

                    @Override
                    public void onError(Throwable e) {
                        System.out.println("报错了6666666666666666666666666666666666666"+e);
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }

}

p

package com.bawei.jiejiaqi0321.mvp.cxgwc.presenter;

import com.bawei.jiejiaqi0321.mvp.CaXun.callback.CXCallBack;
import com.bawei.jiejiaqi0321.mvp.CaXun.contract.CXContract;
import com.bawei.jiejiaqi0321.mvp.CaXun.modle.CXModle;
import com.bawei.jiejiaqi0321.mvp.cxgwc.callback.CXGWCCallBack;
import com.bawei.jiejiaqi0321.mvp.cxgwc.contract.CXGWCContract;
import com.bawei.jiejiaqi0321.mvp.cxgwc.modle.CXGWCModle;

public class CXGWCPresenter extends CXGWCContract.IPresenter{

    private CXGWCModle cxgwcModle;
    private CXGWCContract.IView iView;
    public CXGWCPresenter(CXGWCContract.IView iView) {
        this.iView = iView;
        cxgwcModle = new CXGWCModle();
    }

    @Override
    public void Presenter(String p, String p1) {
        cxgwcModle.Molde(p,p1, new CXGWCCallBack() {
            @Override
            public void onCXGWCSuccess(Object reutilcxgwc) {
                if (iView != null){
                    iView.onCXGWCSuccess(reutilcxgwc);
                }
            }

            @Override
            public void onCXFGWCilure(String msgcxgwc) {

            }
        });
    }

    public void onDestroy(){
        if (iView != null){
            iView = null;
        }else if (cxgwcModle != null){
            cxgwcModle = null;
        }
    }
}
CallBack
package com.bawei.jiejiaqi0321.mvp.cxgwc.callback;

public interface CXGWCCallBack {
    void onCXGWCSuccess(Object reutilcxgwc);
    void onCXFGWCilure(String msgcxgwc);
}
Contract
package com.bawei.jiejiaqi0321.mvp.cxgwc.contract;

import com.bawei.jiejiaqi0321.mvp.CaXun.callback.CXCallBack;
import com.bawei.jiejiaqi0321.mvp.cxgwc.callback.CXGWCCallBack;

public interface CXGWCContract {

     interface IModle{
           void Molde(String p, String p1, CXGWCCallBack cxgwcCallBack);
     }

     interface IView{
         void onCXGWCSuccess(Object reutilcxgwc);
         void onCXFGWCilure(String msgcxgwc);
     }

     abstract class IPresenter{
           public abstract void Presenter(String p,String p1);
    }
}

ApiSrevice

    //查询购物车
    @GET(Api.CXGWC)
    Observable<CXGWCBean> facxgwc(@Header("userId") String mobile, @Header("sessionId") String p);

Api

public static final String HomeApi= "http://172.17.8.100/small/";
  public static final String CXGWC= "order/verify/v1/findShoppingCart";

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值