shopfrag
public class Shoppingcartfragment extends Fragment implements IShowview<Shoppingbean> {
private Showpresenter showpresenter;
private List<Shoppingbean.ResultBean> result;
private ShopCarAdapter shopCarAdapter;
private RecyclerView recycler;
private TextView sl;
private TextView jg;
private CheckBox qx;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.shoppingcart_fragment, container, false);
sl = view.findViewById(R.id.sl);
jg = view.findViewById(R.id.jg);
qx = view.findViewById(R.id.qx);
recycler = view.findViewById(R.id.recycler);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
recycler.setLayoutManager(linearLayoutManager);
showpresenter = new Showpresenter();
showpresenter.setView(this);
SharedPreferences sp = getActivity().getSharedPreferences("id", Context.MODE_PRIVATE);
String uid = sp.getString("uid", "");
String sid = sp.getString("sid", "");
HashMap<String, String> stringStringHashMap = new HashMap<>();
stringStringHashMap.put("userId", uid + "");
stringStringHashMap.put("sessionId", sid);
showpresenter.getShop(stringStringHashMap);
qx.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
checkAll(isChecked);
}
});
return view;
}
private void checkAll(boolean isChecked) {
for (int i = 0; i < result.size(); i++) {
Shoppingbean.ResultBean resultBean = result.get(i);
resultBean.setCheck(isChecked);
}
shopCarAdapter.notifyDataSetChanged();
price();
}
private void price() {
int total = 0;
int totalNum = 0;
List<Shoppingbean.ResultBean> list = shopCarAdapter.getList();
for (int i = 0; i <list.size(); i++) {
Shoppingbean.ResultBean resultBean = list.get(i);
if(resultBean.isCheck()){
int count = resultBean.getCount();
totalNum+=count;
int price = resultBean.getPrice();
total+=price*count;
}
}
jg.setText("总价"+total+"¥");
sl.setText("总数"+totalNum+"");
}
public void CountEvent(CountEvent event){
int adapterPosition = event.getAdapterPosition();
List<Shoppingbean.ResultBean> list = shopCarAdapter.getList();
Shoppingbean.ResultBean resultBean = list.get(adapterPosition);
if(resultBean.isCheck()){
resultBean.setCount(event.getNewNum());
}
shopCarAdapter.notifyDataSetChanged();
price();
}
public void GoosEvent(GoosEvent event){
int adapterPosition = event.getAdapterPosition();
List<Shoppingbean.ResultBean> result = shopCarAdapter.getList();
Shoppingbean.ResultBean resultBean = result.get(adapterPosition);
resultBean.setCheck(event.isGoodsCheck());
if (!resultBean.isCheck()){
qx.setChecked(false);
}
shopCarAdapter.notifyDataSetChanged();
price();
}
@Override
public void Success(Shoppingbean shoppingbean, int s) {
if (s == 5) {
result = shoppingbean.getResult();
shopCarAdapter = new ShopCarAdapter(getActivity(), result);
recycler.setAdapter(shopCarAdapter);
}
}
@Override
public void error(String s) {
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
}
shopbean
public class Shoppingbean {
/**
* result : [{"commodityId":5,"commodityName":"双头两用修容笔","count":3,"pic":"http://172.17.8.100/images/small/commodity/mzhf/cz/3/1.jpg","price":39},{"commodityId":3,"commodityName":"Lara style女神的魔盒全套彩妆","count":1,"pic":"http://172.17.8.100/images/small/commodity/mzhf/cz/1/1.jpg","price":3499},{"commodityId":4,"commodityName":"佩佩防晕染眼线液笔","count":3,"pic":"http://172.17.8.100/images/small/commodity/mzhf/cz/2/1.jpg","price":19},{"commodityId":7,"commodityName":"蓝色之恋","count":4,"pic":"http://172.17.8.100/images/small/commodity/mzhf/cz/5/1.jpg","price":29},{"commodityId":8,"commodityName":"Lara style蜜颊润泽腮红","count":5,"pic":"http://172.17.8.100/images/small/commodity/mzhf/cz/6/1.jpg","price":19},{"commodityId":6,"commodityName":"轻柔系自然裸妆假睫毛","count":4,"pic":"http://172.17.8.100/images/small/commodity/mzhf/cz/4/1.jpg","price":39}]
* message : 查询成功
* status : 0000
*/
private String message;
private String status;
private List<ResultBean> result;
private boolean isCheck=false;
public boolean isCheck() {
return isCheck;
}
public void setCheck(boolean check) {
isCheck = check;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public List<ResultBean> getResult() {
return result;
}
public void setResult(List<ResultBean> result) {
this.result = result;
}
public static class ResultBean {
/**
* commodityId : 5
* commodityName : 双头两用修容笔
* count : 3
* pic : http://172.17.8.100/images/small/commodity/mzhf/cz/3/1.jpg
* price : 39
*/
private int commodityId;
private String commodityName;
private int count;
private String pic;
private int price;
private boolean isCheck=false;
public boolean isCheck() {
return isCheck;
}
public void setCheck(boolean check) {
isCheck = check;
}
public int getCommodityId() {
return commodityId;
}
public void setCommodityId(int commodityId) {
this.commodityId = commodityId;
}
public String getCommodityName() {
return commodityName;
}
public void setCommodityName(String commodityName) {
this.commodityName = commodityName;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
}
conten
public class CountEvent {
private int adapterPosition;
private int newNum;
public CountEvent(int adapterPosition, int newNum) {
this.adapterPosition = adapterPosition;
this.newNum = newNum;
}
public int getAdapterPosition() {
return adapterPosition;
}
public void setAdapterPosition(int adapterPosition) {
this.adapterPosition = adapterPosition;
}
public int getNewNum() {
return newNum;
}
public void setNewNum(int newNum) {
this.newNum = newNum;
}
}
goosevent
public class GoosEvent {
private int adapterPosition;
private boolean isGoodsCheck;
public GoosEvent(int adapterPosition, boolean isGoodsCheck) {
this.adapterPosition = adapterPosition;
this.isGoodsCheck = isGoodsCheck;
}
public int getAdapterPosition() {
return adapterPosition;
}
public void setAdapterPosition(int adapterPosition) {
this.adapterPosition = adapterPosition;
}
public boolean isGoodsCheck() {
return isGoodsCheck;
}
public void setGoodsCheck(boolean goodsCheck) {
isGoodsCheck = goodsCheck;
}
api
//购物车
@GET("small/order/verify/v1/findShoppingCart")
Observable<Shoppingbean>getShop(@HeaderMap HashMap<String,String>hashMap);
p层
public void getShop(HashMap<String, String> stringStringHashMap) {
Observable<Shoppingbean> shop = api.getShop(stringStringHashMap);
shop.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Shoppingbean>() {
@Override
public void accept(Shoppingbean shoppingbean) throws Exception {
getView().Success(shoppingbean, 5);
}
});
shopadapter
public class ShopCarAdapter extends RecyclerView.Adapter<ShopCarAdapter.ViewHolder> {
Context context;
List<Shoppingbean.ResultBean> list;
public ShopCarAdapter(Context context, List<Shoppingbean.ResultBean> list) {
this.context = context;
this.list = list;
}
public List<Shoppingbean.ResultBean> getList() {
return list;
}
public void setList(List<Shoppingbean.ResultBean> list) {
this.list = list;
}
@NonNull
@Override
public ShopCarAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(viewGroup.getContext(), R.layout.shop_item, null);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ShopCarAdapter.ViewHolder viewHolder, int i) {
viewHolder.img.setImageURI(list.get(i).getPic());
viewHolder.shop_price.setText(list.get(i).getPrice() + "");
viewHolder.shop_title.setText(list.get(i).getCommodityName());
viewHolder.zdy.setOnclickAdd(new Zdy.OnclickAdd() {
@Override
public void OnResout(int newnum) {
}
});
viewHolder.checkbox1.setChecked(list.get(i).isCheck());
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final SimpleDraweeView img;
private final TextView shop_title;
private final TextView shop_price;
private final Zdy zdy;
private final CheckBox checkbox1;
public ViewHolder(@NonNull View itemView) {
super(itemView);
img = itemView.findViewById(R.id.img);
shop_title = itemView.findViewById(R.id.shop_title);
shop_price = itemView.findViewById(R.id.shop_price);
zdy = itemView.findViewById(R.id.zdy);
checkbox1 = itemView.findViewById(R.id.checkbox1);
}
}
}
zdy
public class Zdy extends LinearLayout {
private TextView jia;
private TextView jian;
private EditText num;
public Zdy(Context context) {
this(context,null);
}
public Zdy(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public Zdy(Context context,AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(final Context context) {
View view = LayoutInflater.from(context).inflate(R.layout.zdy, this, true);
jia = view.findViewById(R.id.jia);
jian = view.findViewById(R.id.jian);
num = view.findViewById(R.id.ed_num);
num.setText("1");
jia.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int newnum = Integer.parseInt(num.getText().toString());
newnum++;
num.setText(newnum+"");
if(onclickAdd!=null){
onclickAdd.OnResout(newnum);
}
onclickAdd.OnResout(newnum);
}
});
jian.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int newnum = Integer.parseInt(num.getText().toString());
newnum--;
if(newnum>=0){
num.setText(newnum+"");
Toast.makeText(context,"不能减了",Toast.LENGTH_SHORT).show();
if (onclickAdd!=null){
onclickAdd.OnResout(newnum);
} onclickAdd.OnResout(newnum);
}
}
});
}
private OnclickAdd onclickAdd;
public interface OnclickAdd{
void OnResout(int newnum);
}
public void setOnclickAdd(OnclickAdd onclickAdd) {
this.onclickAdd = onclickAdd;
}
}
shopitem
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/checkbox1"/>
<com.facebook.drawee.view.SimpleDraweeView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/img"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_marginTop="20dp"
android:layout_height="wrap_content"
android:text="wdfcxsdf"
android:id="@+id/shop_title"/>
<TextView
android:layout_marginTop="20dp"
android:text="wdfcxsdf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/shop_price"/>
</LinearLayout>
<com.bawie.week22.Zdy
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/zdy"></com.bawie.week22.Zdy>
</LinearLayout>
sjoppingcard_fragment
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="400dp"
android:id="@+id/recycler"></android.support.v7.widget.RecyclerView>
</LinearLayout>
<LinearLayout
android:layout_marginTop="50dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="全选"
android:id="@+id/qx"/>
<TextView
android:layout_marginLeft="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/jg"
android:text="价格"/>
<TextView
android:layout_marginLeft="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sl"
android:text="数量"/>
</LinearLayout>
</LinearLayout>
zdy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/jian"
android:text="-"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ed_num"
android:text="1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/jia"
android:text="+"/>
</LinearLayout>