public class GwcFragMent extends Fragment implements ShopView {
private RecyclerView xrecycler;
private MyAdapters myAdapters;
private PresenterIml presenterIml;
private List<ShopBean.ResultBean> list = new ArrayList<>();
private CheckBox checkBox1;
private TextView text_price,tv_num;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.gwc_fragment,container,false);
xrecycler= view.findViewById(R.id.xrecycler);
checkBox1 = view.findViewById(R.id.checkBox1);
text_price = view.findViewById(R.id.text_price);
tv_num = view.findViewById(R.id.tv_num);
//设置布局管理器
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
xrecycler.setLayoutManager(linearLayoutManager);
myAdapters = new MyAdapters(getActivity());
xrecycler.setAdapter(myAdapters);
//适配器
myAdapters.setChanListener(new MyAdapters.ChanListener() {
@Override
public void chanlistener(List<ShopBean.ResultBean> listbean) {
float priceAll=0;
int countAll=0;
int num=0;
for (int i = 0; i <list.size() ; i++) {
if (list.get(i).isIschckd()){
//选中
int price = list.get(i).getPrice();
int count = list.get(i).getCount();
//获取总价
priceAll=priceAll+price*count;
countAll=countAll +count;
}
}
if (num==list.size()){
//所有的商品都选种
checkBox1.setChecked(true);
}else {
checkBox1.setChecked(false);
}
text_price.setText(priceAll+"");
tv_num.setText("去结算("+countAll+")");
}
});
//选择
checkBox1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean checked = checkBox1.isChecked();
float priceal=0;
int num=0;
for (int i = 0; i <list.size() ; i++) {
list.get(i).setIschckd(checked);
int price1 = list.get(i).getPrice();
int count = list.get(i).getCount();
priceal=priceal+price1*count;
num=num+count;
}
if (!checked){
priceal=0;
num=0;
}
text_price.setText(priceal+"");
tv_num.setText("去结算("+num+")");
myAdapters.setData(list);
}
});
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//获取presenter
presenterIml = new PresenterIml(new Modelml(), this);
//获取头参
Map<String, String> map = new HashMap<>();
map.put("userId", "737");
map.put("sessionId", "1557058097977737");
presenterIml.GetShop(1,"/small/order/verify/v1/findShoppingCart",map,null);
}
@Override
public void success(int type, String data) {
if (type==1){
Log.i("ccc",data);
ShopBean shopBean = new Gson().fromJson(data, ShopBean.class);
if (shopBean.getStatus().equals("0000")){
list = shopBean.getResult();
myAdapters.setData(list);
}else {
Toast.makeText(getActivity(), shopBean.getMessage(), Toast.LENGTH_LONG).show();
}
}
}
@Override
public void fail(int type, String error) {
Log.i("aaa", error);
}
}
public class MyAdapters extends RecyclerView.Adapter<MyAdapters.MyViewHolders> {
private Context context;
private MyViewHolders myViewHolders;
public MyAdapters(Context context) {
this.context = context;
}
private List<ShopBean.ResultBean> list = new ArrayList<>();
@NonNull
@Override
public MyAdapters.MyViewHolders onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context,R.layout.gwe_item,null);
myViewHolders = new MyViewHolders(view);
return myViewHolders;
}
@Override
public void onBindViewHolder(@NonNull final MyAdapters.MyViewHolders myViewHolders, final int i) {
myViewHolders.checkBox2.setChecked(list.get(i).isIschckd());
myViewHolders.text_name.setText(list.get(i).getCommodityName());
myViewHolders.text_price.setText(list.get(i).getPrice()+"");
myViewHolders.simp_view.setImageURI(list.get(i).getPic());
myViewHolders.shopaddview.setNum(list.get(i).getCount());
//获取子布局的选择
myViewHolders.checkBox2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean checked = myViewHolders.checkBox2.isChecked();
list.get(i).setIschckd(checked);
chanListener.chanlistener(list);
}
});
//获取数量
myViewHolders.shopaddview.setChangeNumListener(new ShopAddView.ChangeNumListener() {
@Override
public void num(int num) {
list.get(i).setCount(num);
chanListener.chanlistener(list);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public void setData(List<ShopBean.ResultBean> list) {
this.list =list;
notifyDataSetChanged();
}
public class MyViewHolders extends RecyclerView.ViewHolder {
ShopAddView shopaddview;
CheckBox checkBox2;
TextView text_name,text_price;
SimpleDraweeView simp_view;
public MyViewHolders(@NonNull View itemView) {
super(itemView);
checkBox2 =itemView.findViewById(R.id.checkBox2);
simp_view =itemView.findViewById(R.id.simp_view);
text_name =itemView.findViewById(R.id.text_name);
text_price = itemView.findViewById(R.id.text_price);
shopaddview = itemView.findViewById(R.id.shopaddview);
}
}
//接口回调
public interface ChanListener{
void chanlistener(List<ShopBean.ResultBean> listbean);
}
private ChanListener chanListener;
public void setChanListener(ChanListener chanListener) {
this.chanListener = chanListener;
}
}