Android 案例(二)

M层:

public interface IModel {
    void getGoodsDetail(String url, GetGoodsDetailListener getGoodsDetailListener);

    //添加到购物车
    void addToCart(String url, Map<String, String> parms, AddListener addListener);

    //购物车展示的方法发
    void showGoods(String url, Map<String, String> parms, GetCarListener carListener);

    //计算的功能
    double jisuan(List<CartListBean.DataBean> list);
    //获取订单页
    void showDingDan(String url,Map<String, String> parms,GetDingDanListener getDingDanListener);
}
public class ModelImpl implements IModel {
    @Override
    public void getGoodsDetail(String url, final GetGoodsDetailListener getGoodsDetailListener) {
        //写具体的代码
        OkHttpUtils instance = OkHttpUtils.getInstance();
        instance.okGet(url, "android", "12");
        instance.setOnOkLoadListener(new OKLoadListener() {
            @Override
            public void okLoadSuccess(String json) {
                //判断code,如果code是0,说明网络请求成功,就将数据传出去。否则就是失败
                try {
                    JSONObject object = new JSONObject(json);
                    String code = object.getString("code");
                    if (code.equals("0")) {
                        getGoodsDetailListener.getDetailSuccess(json);
                    } else {
                        getGoodsDetailListener.getDetailError("数据不正确");
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void okLoadError(String error) {
                getGoodsDetailListener.getDetailError(error);
            }
        });
    }

    @Override
    public void addToCart(String url, Map<String, String> parms, final AddListener addListener) {
        OkHttpUtils httpUtils = OkHttpUtils.getInstance();
        httpUtils.okPost(url, parms);
        httpUtils.setOnOkLoadListener(new OKLoadListener() {
            @Override
            public void okLoadSuccess(String json) {
                try {
                    JSONObject object = new JSONObject(json);
                    String code = object.getString("code");
                    if (code.equals("0")) {
                        addListener.addSuccess();
                    } else {
                        addListener.addError();
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void okLoadError(String error) {
                addListener.addError();
            }
        });
    }

    //获取购物车列表具体实现
    @Override
    public void showGoods(String url, Map<String, String> parms, final GetCarListener carListener) {
        OkHttpUtils httpUtils = OkHttpUtils.getInstance();
        httpUtils.okPost(url, parms);
        httpUtils.setOnOkLoadListener(new OKLoadListener() {
            @Override
            public void okLoadSuccess(String json) {
                //可以做一个判断
                try {
                    JSONObject object = new JSONObject(json);
                    String code = object.getString("code");
                    if (code.equals("0")) {
                        carListener.getSuccess(json);
                    } else {
                        carListener.getError(json);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }

            }

            @Override
            public void okLoadError(String error) {
                carListener.getError(error);

            }
        });
    }

    //计算的具体实现
    @Override
    public double jisuan(List<CartListBean.DataBean> list) {
        //遍历集合,如果商品被选中,就加上去
        double sum_temp = 0;
        for (int i = 0; i < list.size(); i++) {
            List<CartListBean.ChildBean> list1 = list.get(i).getList();
            for (int j = 0; j < list1.size(); j++) {
                CartListBean.ChildBean childBean = list1.get(j);
                if (childBean.isChild_flag()) {
                    sum_temp += childBean.getBargainPrice();
                }
            }
        }
        return sum_temp;
    }

    //显示订单
    @Override
    public void showDingDan(String url, Map<String, String> parms, final GetDingDanListener getDingDanListener) {
        OkHttpUtils httpUtils = OkHttpUtils.getInstance();
        httpUtils.okPost(url, parms);
        httpUtils.setOnOkLoadListener(new OKLoadListener() {
            @Override
            public void okLoadSuccess(String json) {

                getDingDanListener.getDingDanSuccess(json);

            }

            @Override
            public void okLoadError(String error) {
                getDingDanListener.getDingDanError(error);
            }
        });
    }
}

适配器:

public class MyAdapter extends BaseExpandableListAdapter {
    private static final String TAG = "MyAdapter";
    private final Context context;
    private final List<CartListBean.DataBean> list;
    private final ICartView iCartView;

    public MyAdapter(Context context, List<CartListBean.DataBean> list, ICartView iCartView) {
        this.context = context;
        this.list = list;
        this.iCartView = iCartView;
    }

    @Override
    public int getGroupCount() {
        return list.size();
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        Log.d(TAG, "getChildrenCount: " + list.get(groupPosition).getList().size());
        return list.get(groupPosition).getList().size();
    }

    @Override
    public Object getGroup(int groupPosition) {
        return list.get(groupPosition);
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return list.get(groupPosition).getList().get(childPosition);
    }

    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }

    @Override
    public boolean hasStableIds() {
        return true;
    }

    @Override
    public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        ParentViewHolder parentViewHolder = null;
        if (convertView == null) {
            convertView = View.inflate(context, R.layout.item_parent, null);
            CheckBox parent_cb = convertView.findViewById(R.id.parent_cb);
            TextView parent_tv = convertView.findViewById(R.id.parent_title);
            parentViewHolder = new ParentViewHolder(parent_cb, parent_tv);
            convertView.setTag(parentViewHolder);
        } else {
            parentViewHolder = (ParentViewHolder) convertView.getTag();
        }
        //赋值
        boolean parent_flag = list.get(groupPosition).isParent_flag();
        String sellerName = list.get(groupPosition).getSellerName();
        parentViewHolder.parent_cb.setChecked(parent_flag);
        //给复选框设置点击事件,当点击的时候,Bean里的数据会相应的改变
        parentViewHolder.parent_cb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //取得现在复习框的状态,然后置反
                boolean parent_flag1 = list.get(groupPosition).isParent_flag();
                parent_flag1 = !parent_flag1;
                list.get(groupPosition).setParent_flag(parent_flag1);
                //当选择商家的时候,子条目的状态全部变成选择/未选中
                List<CartListBean.ChildBean> childList = MyAdapter.this.list.get(groupPosition).getList();
                for (int i = 0; i < childList.size(); i++) {
                    CartListBean.ChildBean childBean = childList.get(i);
                    childBean.setChild_flag(parent_flag1);
                }
                //记得刷新
                notifyDataSetChanged();
                //计算
                new PresenterImpl().showSumToView(new ModelImpl(), iCartView);
            }
        });
        parentViewHolder.parent_title.setText(sellerName);
        return convertView;
    }

    @Override
    public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        ChildViewHolder childViewHolder = null;
        if (convertView == null) {
            convertView = View.inflate(context, R.layout.item_child, null);
            CheckBox child_cb = convertView.findViewById(R.id.child_cb);
            ImageView child_image = convertView.findViewById(R.id.child_image);
            TextView child_title = convertView.findViewById(R.id.child_title);
            TextView child_price = convertView.findViewById(R.id.child_price);
            childViewHolder = new ChildViewHolder(child_cb, child_image, child_title, child_price);
            convertView.setTag(childViewHolder);
        } else {
            childViewHolder = (ChildViewHolder) convertView.getTag();
        }
        //赋值
        final List<CartListBean.ChildBean> childBeanList = list.get(groupPosition).getList();
        CartListBean.ChildBean childBean = childBeanList.get(childPosition);
        boolean child_flag = childBean.isChild_flag();
        String image_url = childBean.getImages().split("\\|")[0];
        String title = childBean.getTitle();
        double bargainPrice = childBean.getBargainPrice();


        childViewHolder.child_cb.setChecked(child_flag);

        childViewHolder.child_cb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CartListBean.ChildBean childBean1 = childBeanList.get(childPosition);
                boolean child_flag1 = childBean1.isChild_flag();
                child_flag1 = !child_flag1;
                childBean1.setChild_flag(child_flag1);
                //当字条目有一个未选中,父条目就不能被选中
                boolean flag_temp = true;
                for (int j = 0; j < childBeanList.size(); j++) {
                    CartListBean.ChildBean childBean2 = childBeanList.get(j);
                    if (!childBean2.isChild_flag()) {
                        flag_temp = false;
                    }
                }

                //将最终的flag_temp结果给父条目
                list.get(groupPosition).setParent_flag(flag_temp);
                //记得刷新
                notifyDataSetChanged();
                //计算
                new PresenterImpl().showSumToView(new ModelImpl(), iCartView);
            }
        });


        Glide.with(context).load(image_url).into(childViewHolder.child_image);
        childViewHolder.child_title.setText(title);
        childViewHolder.child_price.setText(bargainPrice + "");
        return convertView;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }

    //父布局的ViewHolder
    class ParentViewHolder {
        public CheckBox parent_cb;
        public TextView parent_title;

        public ParentViewHolder(CheckBox parent_cb, TextView parent_title) {
            this.parent_cb = parent_cb;
            this.parent_title = parent_title;
        }
    }

    //子布局的ViewHoder
    class ChildViewHolder {
        public CheckBox child_cb;
        public ImageView child_image;
        public TextView child_title;
        public TextView child_price;

        public ChildViewHolder(CheckBox child_cb, ImageView child_image, TextView child_title, TextView child_price) {
            this.child_cb = child_cb;
            this.child_image = child_image;
            this.child_title = child_title;
            this.child_price = child_price;
        }
    }
}
public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter.MyViewHolder> {
    private static final String TAG = "MyRecyclerAdapter&&&&&&";
    private final Context context;
    private final List<DingDanBean.DataBean> list;

    public MyRecyclerAdapter(Context context, List<DingDanBean.DataBean> data) {
        this.context = context;
        this.list = data;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = View.inflate(context, R.layout.item_dingdan, null);
        MyViewHolder myViewHolder = new MyViewHolder(view);
        return myViewHolder;
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        holder.getDingdan_title().setText(list.get(position).getTitle());
        holder.getDingdan_price().setText(list.get(position).getPrice() + "");
        holder.getDingdan_time().setText(list.get(position).getCreatetime());
        //状态0 待支付
//        1 已支付
//        2 已取消

        int status = (int) list.get(position).getStatus();
        switch (status) {
            case 0:
                holder.getDingdan_state().setText("待支付");
                Log.d(TAG, "onBindViewHolder: " + holder + "--" + holder.getDingdan_cancel());
                holder.getDingdan_cancel().setText("取消订单");
                break;
            case 1:
                holder.getDingdan_state().setText("已支付");
                holder.getDingdan_cancel().setText("查看订单");
                break;
            case 2:
                holder.getDingdan_state().setText("已取消");
                holder.getDingdan_cancel().setText("查看订单");
                break;

        }
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    class MyViewHolder extends RecyclerView.ViewHolder {
        private TextView dingdan_title;
        private TextView dingdan_price;
        private TextView dingdan_time;
        private TextView dingdan_state;
        private Button dingdan_cancel;


        public MyViewHolder(View itemView) {
            super(itemView);
            dingdan_title = itemView.findViewById(R.id.dingdan_title);
            dingdan_price = itemView.findViewById(R.id.dingdan_price);
            dingdan_time = itemView.findViewById(R.id.dingdan_time);
            dingdan_state = itemView.findViewById(R.id.dingdan_state);
            dingdan_cancel = itemView.findViewById(R.id.bt);
        }

        public TextView getDingdan_title() {
            return dingdan_title;
        }

        public void setDingdan_title(TextView dingdan_title) {
            this.dingdan_title = dingdan_title;
        }

        public TextView getDingdan_price() {
            return dingdan_price;
        }

        public void setDingdan_price(TextView dingdan_price) {
            this.dingdan_price = dingdan_price;
        }

        public TextView getDingdan_time() {
            return dingdan_time;
        }

        public void setDingdan_time(TextView dingdan_time) {
            this.dingdan_time = dingdan_time;
        }

        public TextView getDingdan_state() {
            return dingdan_state;
        }

        public void setDingdan_state(TextView dingdan_state) {
            this.dingdan_state = dingdan_state;
        }

        public Button getDingdan_cancel() {
            return dingdan_cancel;
        }

        public void setDingdan_cancel(Button dingdan_cancel) {
            this.dingdan_cancel = dingdan_cancel;
        }
    }

}

P层:



public interface IPresenter {
    //从model里面获取商品详情,然后展示在view里面
    void showDetailToView(IModel iModel, IMainView iMainView);

    //添加到购物车
    void addCartList(IModel iModel, IMainView iMainView);

    //展示购物车
    void showCarListToView(IModel iModel, ICartView iCartView);

    //将价格显示到View
    void showSumToView(IModel iModel, ICartView iCartView);
    //将订单显示出来
    void showDingDanToView(IModel iModel, IDingDanView iDingDanView);

    void shuaXin(IModel iModel, IDingDanView iDingDanView);

    void jiaZaiGengDuo(IModel iModel, IDingDanView iDingDanView);
}
public class PresenterImpl implements IPresenter {
    //具体的方法
    @Override
    public void showDetailToView(IModel iModel, final IMainView iMainView) {
        iModel.getGoodsDetail(HttpConfig.detail_url, new GetGoodsDetailListener() {
            @Override
            public void getDetailSuccess(String json) {
                Gson gson = new Gson();
                GoodsDetailBean goodsDetailBean = gson.fromJson(json, GoodsDetailBean.class);
                iMainView.showGoods(goodsDetailBean.getData());
            }

            @Override
            public void getDetailError(String error) {
                iMainView.showError(error);
            }
        });
    }

    //将商品添加到购物车页面
    @Override
    public void addCartList(IModel iModel, final IMainView iMainView) {
        Map<String, String> parms = new HashMap<>();
        parms.put("uid", "71");
        parms.put("pid", iMainView.getPid());
        iModel.addToCart(HttpConfig.add_url, parms, new AddListener() {
            @Override
            public void addSuccess() {
                iMainView.addSuccess();
            }

            @Override
            public void addError() {
                iMainView.addError();
            }
        });
    }

    //展示购物车的具体实现
    @Override
    public void showCarListToView(IModel iModel, final ICartView iCartView) {
        Map<String, String> parms = new HashMap<>();
        parms.put("uid", "71");
        iModel.showGoods(HttpConfig.get_cart_list, parms, new GetCarListener() {
            @Override
            public void getSuccess(String json) {
                Gson gson = new Gson();
                CartListBean cartListBean = gson.fromJson(json, CartListBean.class);

                List<CartListBean.DataBean> data = cartListBean.getData();
                iCartView.showGoodsToCartList(data);
            }

            @Override
            public void getError(String error) {
                iCartView.showError(error);
            }
        });
    }

    //计算的具体实现
    @Override
    public void showSumToView(IModel iModel, ICartView iCartView) {
        double sum = iModel.jisuan(iCartView.getList());
        iCartView.showSum(sum);
    }

    //显示订单
    @Override
    public void showDingDanToView(IModel iModel, final IDingDanView iDingDanView) {
        Map<String, String> parms = new HashMap<>();
        parms.put("uid", "71");
        parms.put("page", "1");
        iModel.showDingDan(HttpConfig.dingdan_list, parms, new GetDingDanListener() {
            @Override
            public void getDingDanSuccess(String json) {
                Gson gson = new Gson();
                DingDanBean dingDanBean = gson.fromJson(json, DingDanBean.class);
                List<DingDanBean.DataBean> list = dingDanBean.getData();
                iDingDanView.showDingDan(list);
            }

            @Override
            public void getDingDanError(String erro) {

            }
        });
    }

    @Override
    public void shuaXin(IModel iModel, final IDingDanView iDingDanView) {
        Map<String, String> parms = new HashMap<>();
        parms.put("uid", "71");
        parms.put("page", "1");
        iModel.showDingDan(HttpConfig.dingdan_list, parms, new GetDingDanListener() {
            @Override
            public void getDingDanSuccess(String json) {
                Gson gson = new Gson();
                DingDanBean dingDanBean = gson.fromJson(json, DingDanBean.class);
                List<DingDanBean.DataBean> list = dingDanBean.getData();
                iDingDanView.showDingDan(list);
            }

            @Override
            public void getDingDanError(String erro) {

            }
        });
    }

    int page = 1;

    @Override
    public void jiaZaiGengDuo(IModel iModel, final IDingDanView iDingDanView) {

        Map<String, String> parms = new HashMap<>();
        parms.put("uid", "71");
        parms.put("page", ++page + "");
        iModel.showDingDan(HttpConfig.dingdan_list, parms, new GetDingDanListener() {
            @Override
            public void getDingDanSuccess(String json) {
                Gson gson = new Gson();
                DingDanBean dingDanBean = gson.fromJson(json, DingDanBean.class);
                List<DingDanBean.DataBean> list = dingDanBean.getData();
                iDingDanView.showDingDan(list);
            }

            @Override
            public void getDingDanError(String erro) {

            }
        });
    }
}

详情页:

public interface IMainView {

    //展示的方法
    void showGoods(GoodsDetailBean.DataBean data);
    //获取数据失败
    void showError(String error);
    //添加购物车成功
    void addSuccess();
    //添加失败
    void addError();
    //获取pid的方法
    String getPid();
}

购物车:

public interface ICartView {
    //展示购物车列表
    void showGoodsToCartList(List<CartListBean.DataBean> list);

    //展示错误
    void showError(String error);

    //显示总价
    void showSum(double sum);

    //获取集合数据
    List<CartListBean.DataBean> getList();
}

主方法:

public class MainActivity extends AppCompatActivity implements IMainView, View.OnClickListener {

    private ImageView main_big_pic;
    private TextView main_title;
    private TextView main_jump;
    private TextView main_add;
    private TextView main_add1;
    private String pid;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //初始化界面
        initViews();
        //调用presenter
        PresenterImpl presenter = new PresenterImpl();
        presenter.showDetailToView(new ModelImpl(), this);
    }

    private void initViews() {
        main_big_pic = findViewById(R.id.main_big_pic);
        main_title = findViewById(R.id.main_title);
        main_jump = findViewById(R.id.main_jump);
        main_add1 = findViewById(R.id.main_add);
        //给控件注册点击事件
        main_jump.setOnClickListener(this);
        main_add1.setOnClickListener(this);
    }

    //展示商品
    @Override
    public void showGoods(GoodsDetailBean.DataBean data) {
        this.pid=data.getPid()+"";
        String images = data.getImages();
        String icon_url = images.split("\\|")[0];
        //放入控件
        Glide.with(this).load(icon_url).into(main_big_pic);
        main_title.setText(data.getTitle());
    }

    //吐司,提示获取数据失败
    @Override
    public void showError(String error) {
        Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show();
    }

    //添加成功
    @Override
    public void addSuccess() {
        Toast.makeText(MainActivity.this, "添加成功", Toast.LENGTH_SHORT).show();
    }

    //添加失败
    @Override
    public void addError() {
        Toast.makeText(MainActivity.this, "添加失败", Toast.LENGTH_SHORT).show();
    }

    @Override
    public String getPid() {
        return pid;
    }

    //点击事件
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.main_jump:
                //跳转到购物车列表页面
                startActivity(new Intent(MainActivity.this, CartListActivity.class));
                break;
            case R.id.main_add:
                //将商品添加到购物车
                new PresenterImpl().addCartList(new ModelImpl(),this);
                break;
        }
    }
}
public class CartListActivity extends AppCompatActivity implements ICartView, View.OnClickListener {

    private ExpandableListView cartlist_expandable;
    private static final String TAG = "CartListActivity=====";
    private TextView sum_tv;
    private List<CartListBean.DataBean> list;
    private CheckBox cartlist_cb;
    private MyAdapter myAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_cart_list);
        //初始化视图
        initViews();
        //调用presenter开始逻辑
        new PresenterImpl().showCarListToView(new ModelImpl(), this);
    }

    private void initViews() {
        cartlist_expandable = findViewById(R.id.cartlist_expandable);
        cartlist_cb = findViewById(R.id.cartlist_cb);
        //注册点击事件
        cartlist_cb.setOnClickListener(this);
        //结算按钮
        Button cartlist_caculate = findViewById(R.id.cartlist_caculate);
        cartlist_caculate.setOnClickListener(this);
        sum_tv = findViewById(R.id.cartlist_sum);
    }

    //获取购物车列表,并展示
    @Override
    public void showGoodsToCartList(List<CartListBean.DataBean> list) {
        this.list = list;
        //展示
        Log.d(TAG, "showGoodsToCartList: " + list.toString());
        //复习ExpableListView
        myAdapter = new MyAdapter(CartListActivity.this, list, this);
        cartlist_expandable.setAdapter(myAdapter);
        //展开ExpanableListView
        int childCount = cartlist_expandable.getCount();
        for (int i = 0; i < childCount; i++) {
            cartlist_expandable.expandGroup(i);
        }
    }

    @Override
    public void showError(String error) {
        Toast.makeText(CartListActivity.this, "--" + error, Toast.LENGTH_SHORT).show();
    }

    //显示总价
    @Override
    public void showSum(double sum) {
        sum_tv.setText("合计:" + sum);
    }

    //返回数据
    @Override
    public List<CartListBean.DataBean> getList() {
        return list;
    }

    //点击事件
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.cartlist_cb:
                //全选/全不选
                boolean checked = cartlist_cb.isChecked();
                for (int i = 0; i < list.size(); i++) {
                    list.get(i).setParent_flag(checked);
                    List<CartListBean.ChildBean> list1 = this.list.get(i).getList();
                    for (int j = 0; j < list1.size(); j++) {
                        list1.get(j).setChild_flag(checked);
                    }
                }
                myAdapter.notifyDataSetChanged();
                //计算
                new PresenterImpl().showSumToView(new ModelImpl(), this);
                break;
            case R.id.cartlist_caculate:
                //跳转
                startActivity(new Intent(CartListActivity.this, DingDanActivity.class));
                break;
        }
    }
}
public class DingDanActivity extends Activity implements IDingDanView {

    private XRecyclerView xRecyclerView;
    private static final String TAG = "DingDanActivity******";

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dingdan);
        //初始化界面
        initViews();
        //记得调用
        new PresenterImpl().showDingDanToView(new ModelImpl(), this);
    }

    private void initViews() {
        xRecyclerView = findViewById(R.id.dingdan_xrecycler_view);
        //设置布局样式
        xRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        xRecyclerView.addItemDecoration(new MyItemDecoration(this, MyItemDecoration.VERTICAL_LIST));
        //设置上啦加载跟多,下拉刷新
        xRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                Log.d(TAG, "onRefresh: ------");

            }

            @Override
            public void onLoadMore() {
                Log.d(TAG, "onLoadMore: &&&&&&&&&&&&");

            }
        });
    }

    //显示订单
    @Override
    public void showDingDan(List<DingDanBean.DataBean> data) {
        //设置适配器
        Log.d(TAG, "showDingDan: " + data.toString());
        MyRecyclerAdapter myRecyclerAdapter = new MyRecyclerAdapter(DingDanActivity.this, data);
        xRecyclerView.setAdapter(myRecyclerAdapter);
    }
}
public interface IDingDanView {
    //显示订单
    void showDingDan(List<DingDanBean.DataBean> data);
}

猜你喜欢

转载自blog.csdn.net/chen_md/article/details/80189745