购物车

------------------------------网络请求 -------------
public class MyUtil {

public final Api api;

//单例模式
private MyUtil(){
    OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .writeTimeout(5000, TimeUnit.SECONDS)
            .readTimeout(5000, TimeUnit.SECONDS)
            .connectTimeout(5000, TimeUnit.SECONDS)
            .addNetworkInterceptor(new Logg())
            .build();
    Retrofit build = new Retrofit.Builder()
            .baseUrl(Api.Url)
            .client(okHttpClient)
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .build();
    api = build.create(Api.class);
}
private static class HttpUtil{
  static   MyUtil myUtil =new MyUtil();
}
public static MyUtil getutil(){
    return HttpUtil.myUtil;
}

private class Logg implements Interceptor{

@Override
public Response intercept(Chain chain) throws IOException {
    SharedPreferences sp = MyApp.getContentInstace().getSharedPreferences("Login", Context.MODE_PRIVATE);
    Request request = chain.request();
    Request.Builder header = request.newBuilder()
            .addHeader("userId", sp.getString("userId", ""))
            .addHeader("sessionId", sp.getString("sessionId", ""));
    Request build = header.build();
    Response response = chain.proceed(build);
    Log.e("qwe1231111", "hou" + sp.getString("userId", ""));
    Log.e("qwe123", "hou" + response);
    return response;
}

}
}

---------------------------------------获取 userid,sessionid* 注册请单文件-------------------------
public class MyApp extends Application {
private static Context context;
@Override
public void onCreate() {
super.onCreate();

    getInstance();
}

public void getInstance() {

    context = getApplicationContext();
}
public static Context getContentInstace(){
    return context;
}

}

---------------------------------- 自定义view-------------------
public class MyView extends LinearLayout implements View.OnClickListener {
private int shu = 1;
private TextView add,jian;
private EditText editText;
public MyView(Context context) {
super(context);
initView(context);
}

public MyView(Context context,  AttributeSet attrs) {
    super(context, attrs);
    initView(context);
}

public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    initView(context);
}
private void initView(Context context) {
    View view = View.inflate(context,R.layout.myview_item, null);
    add=  view.findViewById(R.id.zidingyiadd);
    jian =  view.findViewById(R.id.zidingyijian);
    editText = view.findViewById(R.id.zidingyiaedtext);
    add.setOnClickListener(this);
    jian.setOnClickListener(this);
    editText.setText(shu+"");
    addView(view);
}

@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.zidingyiadd:
            shu++;
            editText.setText(shu+"");
            numCallBack.getBack(shu);
            break;
        case R.id.zidingyijian:
            if (shu>1){
                shu--;
                editText.setText(shu+"");
                numCallBack.getBack(shu);
            }else {
                Toast.makeText(getContext(),"数量最少为一",Toast.LENGTH_SHORT).show();
            }
            break;

    }
}
numCallBack numCallBack;
public void setNumCallBack(numCallBack numCallBack){
    this.numCallBack = numCallBack;
}
public interface numCallBack{
    void getBack(int shu);
}

}

-------------------------------- 购物车 适配器----------------------
public class CarAdapter extends RecyclerView.Adapter<CarAdapter.ViewHolder> {
Context context;
ChaCarBean chaCarBean;
CheckBox checkBox;
TextView price;
private int count = 0;
private List<ChaCarBean.ResultBean> result;

public CarAdapter(Context context, ChaCarBean chaCarBean) {
    this.context = context;
    this.chaCarBean = chaCarBean;
}

@NonNull
@Override
public CarAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = View.inflate(viewGroup.getContext(), R.layout.caritem_layout, null);
   return new ViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull final CarAdapter.ViewHolder viewHolder, final int i) {
    Glide.with(context).load(chaCarBean.getResult().get(i).getPic()).into(viewHolder.imageView);
    viewHolder.name.setText(chaCarBean.getResult().get(i).getCommodityName());
    viewHolder.price.setText(chaCarBean.getResult().get(i).getPrice()+"");
    viewHolder.caritem_check.setChecked(chaCarBean.getResult().get(i).isChecked());
    viewHolder.caritem_check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            result.get(i).setChecked(isChecked);
            boolean selectGoodsChe = selectGoodsChe();
            checkBox.setChecked(selectGoodsChe);
            zongjia();
        }
    });
    viewHolder.myView.setNumCallBack(new MyView.numCallBack() {
        @Override
        public void getBack(int shu) {
            chaCarBean.getResult().get(i).setCount(shu);
            //shuliang = num;
            //Log.i("eeeee", "getBack: "+num);
            zongjia();
            notifyDataSetChanged();
        }
    });


    result = chaCarBean.getResult();
}

@Override
public int getItemCount() {
    return chaCarBean.getResult().size();
}
//Activity 的 复选框
public void setCheck(CheckBox car_chckbox) {
    this.checkBox = car_chckbox;
    checkBox.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            boolean checked = checkBox.isChecked();
            selectAll(checked);
        }

        private void selectAll(boolean checked) {
            for (int i = 0; i < result.size(); i++) {
                result.get(i).setChecked(checked);
            }
            notifyDataSetChanged();
        }
    });
}
    //Activity 的总价
public void setsum(TextView sum) {
    this.price = sum;
    notifyDataSetChanged();
}
private boolean selectGoodsChe() {
    for (int i = 0; i < result.size(); i++) {
        boolean b = result.get(i).isChecked();
        if (!b){
            return false;
        }
    }
    return true;
}

private void zongjia(){
//初始化价钱
int sum = 0;
for (int i = 0; i <result.size() ; i++) {
boolean checked = chaCarBean.getResult().get(i).isChecked();
if (checked){
sum +=result.get(i).getCount()*result.get(i).getPrice();
}
}
price.setText(sum+"");

}

public List<ChaCarBean.ResultBean> getData(){
    return result;

}
public class ViewHolder extends RecyclerView.ViewHolder {
    ImageView imageView;
    TextView name,price;
    CheckBox caritem_check;
    MyView myView;
    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        imageView = itemView.findViewById(R.id.caritem_image);
        name = itemView.findViewById(R.id.caritem_name);
        price = itemView.findViewById(R.id.caritem_price);
        caritem_check = itemView.findViewById(R.id.caritem_check);
        myView = itemView.findViewById(R.id.caritem_myview);
    }
}

}

-------------------------------------------------- 订单-----------------------
public class CloseActivity extends BaseActivity {
@BindView(R.id.close_recycler)
RecyclerView closeRecycler;
@BindView(R.id.close_sumcount)
TextView closeSumcount;
@BindView(R.id.close_sumprice)
TextView closeSumprice;
@BindView(R.id.close_shouhuoname)
TextView closeShouhuoname;
@BindView(R.id.close_shouhuophone)
TextView closeShouhuophone;
@BindView(R.id.close_shouhuoaddress)
TextView closeShouhuoaddress;
@BindView(R.id.close_commit)
Button closeCommit;
private int count = 1;
private List<ChaCarBean.ResultBean> list = new ArrayList<>();
List date = new ArrayList<>();
private int commodityId;
private int id;
private Persion persion;
int sum = 0;
private CloseAdapter closeAdapter;
private int getsum;

@Override
protected void bindEvent() {
    closeCommit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            for (int i = 0; i < list.size(); i++) {
                commodityId = list.get(i).getCommodityId();
                date.add(new DateBeans(list.get(i).getCommodityId(),list.get(i).getCount()));
            }
            Gson gson = new Gson();
            String s = gson.toJson(date);
            CharSequence text = closeSumprice.getText();
            Double aDouble = Double.valueOf((String) text);
            persion.getorder(s,aDouble,id);
            Intent intent = new Intent(CloseActivity.this,PayActivity.class);
            EventBus.getDefault().postSticky(text);
            startActivity(intent);
        }

    });
}

@Override
protected void initData() {

}

@Override
protected void initView() {
    EventBus.getDefault().register(this);

    ButterKnife.bind(this);
    closeAdapter = new CloseAdapter(this, list);
    closeRecycler.setAdapter(closeAdapter);
    closeAdapter.setprice(closeSumprice);
    closeAdapter.setcount(closeSumcount);

    closeAdapter.notifyDataSetChanged();
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    closeRecycler.setLayoutManager(linearLayoutManager);
    persion = new Persion(this);
    persion.getclose();
}

@Override
protected int bindLayout() {
    return R.layout.activity_close;
}

@Subscribe(threadMode = ThreadMode.POSTING, sticky = true)
public void onChuanzhi(List<ChaCarBean.ResultBean> list) {
    this.list = list;
}


public void getShow(Addressbean addressbean) {
    List<Addressbean.ResultBean> result = addressbean.getResult();
    for (int i = 0; i < result.size(); i++) {
        if (result.get(i).getWhetherDefault() == 1) {
            closeShouhuoname.setText(result.get(i).getRealName());
            closeShouhuophone.setText(result.get(i).getPhone());
            closeShouhuoaddress.setText(result.get(i).getAddress());
            id = result.get(i).getId();
        }

    }

}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // TODO: add setContentView(...) invocation
    ButterKnife.bind(this);
}

public void getOrder(CreatOrderBean orderBean) {
    Log.i("qweqeqewq","dadad"+orderBean.getMessage());
}

}

--------------------------greendao ----------------
public class Frag3 extends Fragment {
@BindView(R.id.car_recycler)
RecyclerView carRecycler;
Unbinder unbinder;
@BindView(R.id.car_check)
CheckBox carCheck;
@BindView(R.id.iten_price)
TextView itenPrice;
ResultBeanDao dao;
private List result;
private MyAdapter myAdapter;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View inflate = inflater.inflate(R.layout.frag3, container, false);
    unbinder = ButterKnife.bind(this, inflate);
    dao = DaoMaster.newDevSession(getContext(),ResultBeanDao.TABLENAME).getResultBeanDao();
    return inflate;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    if (isnetwork()) {
        Persions persions = new Persions(this);
        persions.onCarShow("1856", "15583146403631856");
    } else {
        myAdapter.setAll(dao.loadAll());
        myAdapter.notifyDataSetChanged();
    }
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
    carRecycler.setLayoutManager(linearLayoutManager);
}

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

private boolean isnetwork() {
    ConnectivityManager connectivityManager = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo info = connectivityManager.getActiveNetworkInfo();
    if (info!= null) {
        info.isAvailable();
    }
    return true;
}

public void getshow(GoodsBean goodsBean) {
    myAdapter = new MyAdapter(getContext());
    myAdapter.setData(goodsBean);
    myAdapter.setCheck(carCheck);
    myAdapter.setSum(itenPrice);
    result = goodsBean.getResult();
    dao.insertOrReplaceInTx(result);
    carRecycler.setAdapter(myAdapter);
}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值