自定义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";