public class MainActivity extends BaseActivityPresenter<MainActivityPresenter>{
@BindView(R.id.change)
TextView mChange;
@Override
public Class<MainActivityPresenter> getClassDelegate() {
return MainActivityPresenter.class;
}
@Override
public void initview() {
super.initview();
delegate.oncreate(mChange);
}
}
public class MainActivityPresenter extends AppDelegate implements View.OnClickListener {
private RecyclerView mRecyclerView;
private MerchantsApdater apdater;
private ImageView checked;
private TextView sumprice,allprice;
private List<Bean.DataBean> data1;
@Override
public int getLayoutId() {
return R.layout.activity_main;
}
private Context context;
@Override
public void getContext(Context context) {
this.context=context;
}
@Override
public void initData() {
get(R.id.jump).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
context.startActivity(new Intent(context, LiuShiActivity.class));
}
});
mRecyclerView = (RecyclerView)get(R.id.recyclerview);
//获取全选和反选的图片
checked = (ImageView) get(R.id.iv_cricle);
//全选的点击事件
checked.setOnClickListener(this);
//结算
sumprice = get(R.id.sum_price_txt);
//合计
allprice = get(R.id.all_price);
doHttp();
mChange.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context, "I love qyc", Toast.LENGTH_SHORT).show();
}
});
result();
}
private void result() {
apdater.result(new MerchantsApdater.SetOnclicklinaer() {
@Override
public void click(List<Bean.DataBean> list) {
int num = 0;
double price = 0;
int numall=0;
int numischecked=0;
for (int i = 0; i < list.size(); i++) {
List<Bean.DataBean.ListBean> list1 = list.get(i).getList();
for (int j = 0; j < list1.size(); j++) {
numall++;
//选中状态
if (list1.get(j).isIschecked()){
numischecked++;
int num1 = list1.get(j).getNum();
double price1 = list1.get(j).getPrice();
num=num+1*num1;
price=price+price1*num1;
}
}
}
sumprice.setText("去结算"+num);
allprice.setText("合计"+price);
if (numall==numischecked){
checked.setImageResource(R.drawable.cricle_yes);
ischecked=true;
}else{
checked.setImageResource(R.drawable.cricle_no);
ischecked=false;
}
}
});
}
private void doHttp() {
apdater = new MerchantsApdater(context);
mRecyclerView.setAdapter(apdater);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
mRecyclerView.setLayoutManager(linearLayoutManager);
Map<String,String> map = new HashMap<>();
map.put("uid","71");
new HttpHelper().get("/product/getCarts",map).result(new HttpListener() {
@Override
public void success(String data) {
//Toast.makeText(context, "数据+"+data, Toast.LENGTH_SHORT).show();
Gson gson = new Gson();
Bean bean = gson.fromJson(data, Bean.class);
data1 = bean.getData();
apdater.setList(data1);
}
@Override
public void fail(String error) {
}
});
}
//定义boolean类型
private boolean ischecked=true;
//全选的点击事件
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.iv_cricle:
//选中状态
if (ischecked){
checked.setImageResource(R.drawable.cricle_yes);
ischecked=false;
//计算价格和数量
priceandnum(true);
}
//未选中状态
else{
checked.setImageResource(R.drawable.cricle_no);
ischecked=true;
//计算价格和数量
priceandnum(false);
}
break;
}
}
//计算价格和数量
private void priceandnum(boolean is) {
double price = 0;
int number = 0;
//遍历
for (int i = 0; i < data1.size(); i++) {
List<Bean.DataBean.ListBean> list = data1.get(i).getList();
for (int j = 0; j < list.size(); j++) {
double price1 = list.get(j).getPrice();
list.get(j).setIschecked(is);
number=number+1*list.get(j).getNum();
price+=price1*list.get(j).getNum();
}
}
if (is){
sumprice.setText("去结算"+number+"");
allprice.setText("合计"+price+"");
}else{
sumprice.setText("去结算"+0);
allprice.setText("合计"+0.00);
}
//刷新适配器
apdater.notifyDataSetChanged();
}
private TextView mChange;
public void oncreate(TextView mChange) {
this.mChange=mChange;
//Toast.makeText(context, "哈哈", Toast.LENGTH_SHORT).show();
}
}
public class GoodsApdaterChild extends RecyclerView.Adapter<GoodsApdaterChild.MyViewHolder> {
private Context context;
public GoodsApdaterChild(Context context) {
this.context=context;
}
@NonNull
@Override
public GoodsApdaterChild.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context, R.layout.recycview_goods_item_child,null);
MyViewHolder viewHolder = new MyViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull final GoodsApdaterChild.MyViewHolder myViewHolder, final int i) {
//myViewHolder.image.setImageURI(list.get(i).getImages().replace("https","http").split("//|")[0]);
myViewHolder.price.setText("价格:"+list.get(i).getPrice()+"");
myViewHolder.name.setText(list.get(i).getTitle());
//Glide.with(context).load(list.get(i).getImages().split("\\|")[0]).into(myViewHolder.pic);
myViewHolder.pic.setImageURI(list.get(i).getImages().split("\\|")[0]);
//将Bean里的num赋值
myViewHolder.num.setText(list.get(i).getNum()+"");
//CheckBox选中的状态
if (list.get(i).isIschecked()){
myViewHolder.checkbox.setImageResource(R.drawable.cricle_yes);
}else{
myViewHolder.checkbox.setImageResource(R.drawable.cricle_no);
}
//CheckBox点击事件
myViewHolder.checkbox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//点击变为没有选中
if (list.get(i).isIschecked()){
list.get(i).setIschecked(false);
}else{
list.get(i).setIschecked(true);
}
//刷新条目
notifyItemChanged(i);
lisnaer.click();
}
});
//加
myViewHolder.add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int num = list.get(i).getNum();
list.get(i).setNum(num+1);
notifyItemChanged(i);
lisnaer.click();
}
});
//减
myViewHolder.jian.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
list.get(i).setNum(list.get(i).getNum()-1);
notifyItemChanged(i);
lisnaer.click();
}
});
}
@Override
public int getItemCount() {
return list.size();
}
private List<Bean.DataBean.ListBean> list = new ArrayList<>();
public void setList(List<Bean.DataBean.ListBean> list) {
//list.remove(0);
this.list = list;
notifyDataSetChanged();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
ImageView jian,add,checkbox;
SimpleDraweeView pic;
TextView price,name;
EditText num;
//ImageView pic;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
price = (TextView) itemView.findViewById(R.id.g_child_price);
name = (TextView) itemView.findViewById(R.id.g_child_name);
pic = (SimpleDraweeView)itemView.findViewById(R.id.g_image_child);
checkbox =(ImageView)itemView.findViewById(R.id.checkbox);
//pic = (ImageView) itemView.findViewById(R.id.recyview_right_image);
num = itemView.findViewById(R.id.num);
jian = itemView.findViewById(R.id.jian);
add = itemView.findViewById(R.id.add);
}
}
//接口回调
private SetOnclicklinaer lisnaer;
public void result(SetOnclicklinaer lisnaer){
this.lisnaer=lisnaer;
}
//定义接口
public interface SetOnclicklinaer{
void click();
}
}
public class MerchantsApdater extends RecyclerView.Adapter<MerchantsApdater.MyViewHolder> {
private Context context;
private GoodsApdaterChild apdaterChild;
public MerchantsApdater(Context context) {
this.context=context;
}
@NonNull
@Override
public MerchantsApdater.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context, R.layout.recycview_shangjia_item,null);
MyViewHolder viewHolder = new MyViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull MerchantsApdater.MyViewHolder myViewHolder, int i) {
final List<Bean.DataBean.ListBean> list1 = this.list.get(i).getList();
myViewHolder.textView.setText(this.list.get(i).getSellerName());
apdaterChild = new GoodsApdaterChild(context);
myViewHolder.rightChild.setAdapter(apdaterChild);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
myViewHolder.rightChild.setLayoutManager(linearLayoutManager);
apdaterChild.setList(list1);
apdaterChild.result(new GoodsApdaterChild.SetOnclicklinaer() {
@Override
public void click() {
lisnaer.click(list);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
private List<Bean.DataBean> list = new ArrayList<>();
public void setList(List<Bean.DataBean> list) {
this.list = list;
notifyDataSetChanged();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
RecyclerView rightChild;
TextView textView;
//ImageView pic;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.s_recyview_name);
//pic = (ImageView) itemView.findViewById(R.id.recyview_right_image);
rightChild = (RecyclerView)itemView.findViewById(R.id.s_recyview_recyview);
}
}
//接口回调
private SetOnclicklinaer lisnaer;
public void result(SetOnclicklinaer lisnaer){
this.lisnaer=lisnaer;
}
//定义接口
public interface SetOnclicklinaer{
void click(List<Bean.DataBean> list);
}
}