订单

来源:互联网 发布:淘宝咨询客服人工服务 编辑:程序博客网 时间:2024/06/10 08:33

//activity_cart

<?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="vertical">    <!--头布局-->    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="40dp">        <TextView            android:layout_width="match_parent"            android:layout_height="match_parent"            android:gravity="center"            android:text="商品详情"            android:textSize="20dp" />        <ImageView            android:id="@+id/img_back"            android:layout_width="20dp"            android:layout_height="40dp"            android:layout_marginLeft="5dp"            android:src="@drawable/back" />    </RelativeLayout>    <ExpandableListView        android:id="@+id/exListView"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1"        android:childIndicator="@null"        android:groupIndicator="@null"></ExpandableListView>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="70dp"        android:gravity="center_vertical"        android:orientation="horizontal">        <CheckBox            android:id="@+id/all_chekbox"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="20dp" />        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="全选/反选" />        <LinearLayout            android:id="@+id/ll_info"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="3">            <LinearLayout                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_marginLeft="20dp"                android:gravity="left"                android:orientation="horizontal">                <TextView                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:layout_marginLeft="5dp"                    android:text="总价:"                    android:textSize="18sp"                    android:textStyle="bold" />                <TextView                    android:id="@+id/total_price"                    android:layout_width="wrap_content"                    android:layout_height="wrap_content"                    android:text="0.00"                    android:textColor="#f23232"                    android:textSize="16sp"                    android:textStyle="bold" />            </LinearLayout>        </LinearLayout>        <!--<Button            android:id="@+id/jiesuan"            android:layout_width="80dp"            android:layout_height="wrap_content"            android:background="#f00"            android:gravity="center"            android:textColor="#fff"            android:text="去结算" />-->        <TextView            android:id="@+id/total_number"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:gravity="center"            android:text="结算:0"            android:textSize="16sp"            android:textStyle="bold" />    </LinearLayout></LinearLayout>

//CartActivity

package com.example.yue;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.CheckBox;import android.widget.ExpandableListView;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.example.yue.Interface.INewView;import com.example.yue.adapter.ExpandableAdapter;import com.example.yue.bean.ChildBean;import com.example.yue.bean.GroupBean;import com.example.yue.bean.ShopCarBean;import com.example.yue.presenter.NewsPresenter;import java.text.DecimalFormat;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class CartActivity extends AppCompatActivity implements INewView {    private ImageView imgBack;    private ExpandableListView exListView;    public CheckBox allCheckbox;    private TextView totalPrice;    private NewsPresenter presenter;    List<GroupBean> groupBeen = new ArrayList<>();    List<List<ChildBean>> childBeen = new ArrayList<>();    private ExpandableAdapter expandableAdapter;    private TextView totalnumber;    private double sum;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_cart);        initView();        presenter = new NewsPresenter();        presenter.attachView(this);        //请求数据        Map<String, String> map = new HashMap<>();        map.put("uid", "71");        //https://www.zhaoapi.cn/product/getCarts?uid=71&source=android        presenter.post("https://www.zhaoapi.cn/product/getCarts", map, "car", ShopCarBean.class);        //获取二级列表适配器        expandableAdapter = new ExpandableAdapter(CartActivity.this, groupBeen, childBeen);        exListView.setAdapter(expandableAdapter);        for (int i = 0; i < expandableAdapter.getGroupCount(); i++) {            exListView.expandGroup(i);        }        exListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {            @Override            public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {                return true;            }        });        //全选监听        allCheckbox.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                boolean checked = allCheckbox.isChecked();                //改变一级item复选框                for (GroupBean i : groupBeen) {                    i.setGropuCb(checked);                }                //改变二级item复选框                for (List<ChildBean> i1 : childBeen) {                    for (int r = 0; r < i1.size(); r++) {                        i1.get(r).setChildCb(checked);                    }                }                expandableAdapter.notifyDataSetChanged();                changesum(childBeen);                //Toast.makeText(Main2Activity.this,"全选按钮"+checked,Toast.LENGTH_SHORT).show();            }        });    }    private void initView() {        imgBack = (ImageView) findViewById(R.id.img_back);        exListView = (ExpandableListView) findViewById(R.id.exListView);        allCheckbox = (CheckBox) findViewById(R.id.all_chekbox);        totalPrice = (TextView) findViewById(R.id.total_price);        totalnumber = (TextView) findViewById(R.id.total_number);        totalnumber.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //跳转到确认订单页面                Intent intent = new Intent(CartActivity.this, ConfirmActivity.class);                intent.putExtra("money", df.format(sum));                startActivity(intent);            }        });    }    @Override    public void success(String tag, Object o) {        if (o != null && tag.equals("car")) {            ShopCarBean shopCarBean = (ShopCarBean) o;            List<ShopCarBean.DataBean> data = shopCarBean.getData();            for (ShopCarBean.DataBean i : data) {                GroupBean groupBean = new GroupBean(i.getSellerName(), false);                this.groupBeen.add(groupBean);                List<ShopCarBean.DataBean.ListBean> list = i.getList();                List<ChildBean> ls = new ArrayList<>();                for (ShopCarBean.DataBean.ListBean w : list) {                    String[] split = w.getImages().split("\\|");                    ChildBean childBean = new ChildBean(w.getTitle(), split[0], w.getPrice(), 1, false, false);                    ls.add(childBean);                }                this.childBeen.add(ls);            }            for (int i = 0; i < expandableAdapter.getGroupCount(); i++) {                exListView.expandGroup(i);            }            expandableAdapter.notifyDataSetChanged();        }    }    @Override    public void failed(String tag, Exception e) {        if (tag.equals("car")) {            Toast.makeText(CartActivity.this, "你已进入没有网络的异次元o(╥╥)o", Toast.LENGTH_SHORT).show();        }    }    DecimalFormat df = new DecimalFormat("######0.00");    //计算和数量总价    public void changesum(List<List<ChildBean>> childBeen) {        sum = 0;        int count = 0;        for (List<ChildBean> i1 : childBeen) {            for (int r = 0; r < i1.size(); r++) {                boolean childCb1 = i1.get(r).isChildCb();                if (childCb1) {                    double price = i1.get(r).getPrice();                    int num = i1.get(r).getNum();                    sum += price * num;                    //sum += price;                    count++;                }            }        }        totalPrice.setText("" + df.format(sum));        totalnumber.setText("结算:" + count + "");    }    @Override    protected void onDestroy() {        super.onDestroy();        if (presenter != null) {            presenter.deleteView();        }    }}
//activity_confirm
<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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:background="#ff0">    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="60dp"        android:layout_alignParentBottom="true"        android:background="#fff">        <TextView            android:id="@+id/tvLeft"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_alignBaseline="@+id/bt"            android:layout_alignBottom="@+id/bt"            android:layout_marginEnd="41dp"            android:layout_marginRight="41dp"            android:layout_toLeftOf="@+id/bt"            android:layout_toStartOf="@+id/bt"            android:text="11111111111"            android:textColor="#f00" />        <Button            android:id="@+id/bt"            android:layout_width="100dp"            android:layout_height="wrap_content"            android:layout_alignParentRight="true"            android:background="#f00"            android:text="立即下单"            android:textColor="#fff" />    </RelativeLayout></RelativeLayout>
//ConfirmActivity
package com.example.yue;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.TextView;import com.example.yue.fragg.OrderActivity;public class ConfirmActivity extends AppCompatActivity {    private TextView mTvLeft;    private Button mBt;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_confirm);        Intent intent = getIntent();        String money = intent.getStringExtra("money");        initView();        mTvLeft.setText("实付款:¥" + money);    }    private void initView() {        mTvLeft = (TextView) findViewById(R.id.tvLeft);        mBt = (Button) findViewById(R.id.bt);        mBt.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(ConfirmActivity.this, OrderActivity.class);                startActivity(intent);            }        });    }}
//activity_order
<?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"    tools:context="com.example.yue.fragg.OrderActivity">    <android.support.design.widget.TabLayout        android:id="@+id/tab"        android:layout_width="match_parent"        android:layout_height="60dp"></android.support.design.widget.TabLayout>    <android.support.v4.view.ViewPager        android:id="@+id/vp"        android:layout_width="match_parent"        android:layout_height="match_parent"></android.support.v4.view.ViewPager></LinearLayout>

//OrderActivity
package com.example.yue.fragg;import android.os.Bundle;import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import com.example.yue.R;import java.util.ArrayList;import java.util.List;public class OrderActivity extends AppCompatActivity {    private TabLayout tl;    private ViewPager vp;    private List<String> list = new ArrayList<>();    private List<Fragment> flist = new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_order);        tl = (TabLayout) findViewById(R.id.tab);        vp = (ViewPager) findViewById(R.id.vp);        list.add("全部");        list.add("待支付");        list.add("已支付");        list.add("已取消");        //fragment集合        flist.add(new frag1());        flist.add(new frag2());        flist.add(new frag3());        flist.add(new frag4());        vp.setAdapter(new MAdapter(this.getSupportFragmentManager()));        tl.setupWithViewPager(vp);    }    class MAdapter extends FragmentPagerAdapter {        public MAdapter(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int position) {            return flist.get(position);        }        @Override        public int getCount() {            return flist.size();        }        @Override        public CharSequence getPageTitle(int position) {            return list.get(position);        }    }}
//frag1
<?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:gravity="center"    android:orientation="vertical">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="全部" />    <android.support.v7.widget.RecyclerView        android:id="@+id/rv"        android:layout_width="match_parent"        android:layout_height="match_parent"></android.support.v7.widget.RecyclerView></LinearLayout>

//frag1
package com.example.yue.fragg;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.example.yue.R;import com.google.gson.Gson;import java.io.IOException;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;public class frag1 extends Fragment {    private View view;    private RecyclerView rv;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        view = inflater.inflate(R.layout.frag1, container, false);        rv = view.findViewById(R.id.rv);        rv.setLayoutManager(new LinearLayoutManager(getActivity()));        String url = "https://www.zhaoapi.cn/product/getOrders?uid=71";        OkHttpUtils.getOkHttpUtils().doGet(url, new Callback() {            @Override            public void onFailure(Call call, IOException e) {            }            @Override            public void onResponse(Call call, Response response) throws IOException {                String string = response.body().string();                final OrderBean orderBean = new Gson().fromJson(string, OrderBean.class);                getActivity().runOnUiThread(new Runnable() {                    @Override                    public void run() {                        RvAllAdapter adapter = new RvAllAdapter(getContext(), orderBean.getData());                        rv.setAdapter(adapter);                    }                });            }        });        return view;    }}
//OkHttpUtils
package com.example.yue.fragg;import android.util.Log;import java.util.Map;import okhttp3.Callback;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.logging.HttpLoggingInterceptor;public class OkHttpUtils {    private static OkHttpUtils okHttpUtils;    private final OkHttpClient client;    private OkHttpUtils() {        HttpLoggingInterceptor logging = new HttpLoggingInterceptor();        logging.setLevel(HttpLoggingInterceptor.Level.BODY);        client = new OkHttpClient.Builder()                .addInterceptor(new MyInterceptor())                .build();    }    public static OkHttpUtils getOkHttpUtils() {        if (okHttpUtils == null) {            synchronized (OkHttpUtils.class) {                if (okHttpUtils == null) {                    okHttpUtils = new OkHttpUtils();                }            }        }        return okHttpUtils;    }    /**     * GET请求     *     * @param url     * @param callback     */    public void doGet(String url, Callback callback) {        Request request = new Request.Builder().url(url).build();        client.newCall(request).enqueue(callback);    }    /**     * POST请求     *     * @param url     * @param params     * @param callback     */    public void doPost(String url, Map<String, String> params, Callback callback) {        if (params == null) {            throw new RuntimeException("参数为空了");        }        FormBody.Builder builder = new FormBody.Builder();        for (Map.Entry<String, String> entry : params.entrySet()) {            builder.add(entry.getKey(), entry.getValue());        }        Log.e("OkHttpUtils", "请求地址:" + url + " 请求的参数:");        FormBody formBody = builder.build();        Request request = new Request.Builder().url(url).post(formBody).build();        client.newCall(request).enqueue(callback);    }}
//MyInterceptor
package com.example.yue.fragg;import java.io.IOException;import okhttp3.FormBody;import okhttp3.Interceptor;import okhttp3.Request;import okhttp3.Response;public class MyInterceptor implements Interceptor {    @Override    public Response intercept(Chain chain) throws IOException {        Request request = chain.request();        if (request.method().equals("GET")) {            String url = request.url().url().toString();            url += "&source=android";            Request newRequset = request.newBuilder().url(url).build();            return chain.proceed(newRequset);        } else {            FormBody formBody = (FormBody) request.body();            FormBody.Builder builder = new FormBody.Builder();            for (int i = 0; i < formBody.size(); i++) {                builder.add(formBody.name(i), formBody.value(i));            }            builder.add("source", "android");            FormBody newFormBody = builder.build();            Request newRequest = request.newBuilder().url(request.url().url().toString()).post(newFormBody).build();            return chain.proceed(newRequest);        }    }}
//order_item
<?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="130dp"    android:orientation="horizontal">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="130dp"        android:layout_weight="1"        android:orientation="vertical">        <TextView            android:id="@+id/textView"            android:layout_width="100dp"            android:layout_height="wrap_content"            android:text="标题"            android:textColor="#000" />        <TextView            android:id="@+id/textView3"            android:layout_width="150dp"            android:layout_height="wrap_content"            android:layout_marginTop="10dp"            android:text="价钱" />        <TextView            android:id="@+id/textView4"            android:layout_width="300dp"            android:layout_height="wrap_content"            android:layout_marginTop="10dp"            android:text="时间"            android:textColor="#000" />        <TextView            android:layout_width="match_parent"            android:layout_height="2dp"            android:background="#000" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="130dp"        android:layout_weight="2"        android:orientation="vertical">        <TextView            android:id="@+id/textView2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="TextView2" />        <Button            android:id="@+id/textView5"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginTop="10dp"            android:text="查看订单" />        <TextView            android:layout_width="match_parent"            android:layout_height="2dp"            android:background="#000" />    </LinearLayout></LinearLayout>

//RvAllAdapter
package com.example.yue.fragg;import android.content.Context;import android.graphics.Color;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.TextView;import android.widget.Toast;import com.example.yue.R;import java.util.List;public class RvAllAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {    private Context context;    private List<OrderBean.DataBean> list;    public RvAllAdapter(Context context, List<OrderBean.DataBean> list) {        this.context = context;        this.list = list;    }    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(context).inflate(R.layout.order_item, parent, false);        return new MyViewHolder(view);    }    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {        MyViewHolder myViewHolder = (MyViewHolder) holder;        OrderBean.DataBean dataBean = list.get(position);        myViewHolder.tvTitle.setText(dataBean.getTitle());        int status = dataBean.getStatus();        myViewHolder.tvBt.setText("查看订单");        myViewHolder.tvStatus.setTextColor(Color.parseColor("#000000"));        if (status == 0) {            myViewHolder.tvStatus.setText("待支付");            myViewHolder.tvBt.setText("取消订单");            myViewHolder.tvStatus.setTextColor(Color.parseColor("#ff0000"));        } else if (status == 1) {            myViewHolder.tvStatus.setText("已取消");        } else if (status == 2) {            myViewHolder.tvStatus.setText("已支付");        }        myViewHolder.tvPrice.setText("价格:" + dataBean.getPrice());        myViewHolder.tvPrice.setTextColor(Color.parseColor("#ff0000"));        myViewHolder.tvTime.setText(dataBean.getCreatetime());        myViewHolder.tvBt.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText(context, "查看订单", Toast.LENGTH_SHORT).show();            }        });    }    @Override    public int getItemCount() {        return list.size();    }    class MyViewHolder extends RecyclerView.ViewHolder {        private final TextView tvTitle;        private final TextView tvStatus;        private final TextView tvPrice;        private final TextView tvTime;        private final Button tvBt;        public MyViewHolder(View itemView) {            super(itemView);            tvTitle = itemView.findViewById(R.id.textView);            tvStatus = itemView.findViewById(R.id.textView2);            tvPrice = itemView.findViewById(R.id.textView3);            tvTime = itemView.findViewById(R.id.textView4);            tvBt = itemView.findViewById(R.id.textView5);        }    }}

//OrderBean

package com.example.yue.fragg;import java.util.List;/** * Created by peng on 2017/12/20. */public class OrderBean {    /**     * msg : 请求成功     * code : 0     * data : [{"createtime":"2017-10-19T20:28:43","orderid":20,"price":100,"status":2,"title":"订单标题测试3","uid":71},{"createtime":"2017-10-19T20:44:40","orderid":31,"price":11800,"status":2,"title":"订单标题测试14","uid":71},{"createtime":"2017-10-19T20:44:51","orderid":32,"price":11800,"status":1,"title":"订单标题测试15","uid":71},{"createtime":"2017-10-20T08:02:07","orderid":43,"price":11800,"status":2,"title":"订单标题测试","uid":71},{"createtime":"2017-10-20T08:02:16","orderid":44,"price":11800,"status":2,"title":"订单标题测试","uid":71},{"createtime":"2017-10-22T15:14:39","orderid":890,"price":11800,"status":2,"title":"","uid":71},{"createtime":"2017-11-09T09:17:20","orderid":1446,"price":99.99,"status":1,"title":"订单标题测试","uid":71},{"createtime":"2017-11-09T09:20:58","orderid":1447,"price":567,"status":2,"title":"订单标题测试","uid":71},{"createtime":"2017-11-09T09:20:58","orderid":1448,"price":256.99,"status":2,"title":"订单标题测试","uid":71},{"createtime":"2017-11-09T09:20:58","orderid":1449,"price":399,"status":2,"title":"订单标题测试","uid":71}]     * page : 1     */    private String msg;    private String code;    private String page;    private List<DataBean> data;    public String getMsg() {        return msg;    }    public void setMsg(String msg) {        this.msg = msg;    }    public String getCode() {        return code;    }    public void setCode(String code) {        this.code = code;    }    public String getPage() {        return page;    }    public void setPage(String page) {        this.page = page;    }    public List<DataBean> getData() {        return data;    }    public void setData(List<DataBean> data) {        this.data = data;    }    public static class DataBean {        /**         * createtime : 2017-10-19T20:28:43         * orderid : 20         * price : 100.0         * status : 2         * title : 订单标题测试3         * uid : 71         */        private String createtime;        private int orderid;        private double price;        private int status;        private String title;        private int uid;        public String getCreatetime() {            return createtime;        }        public void setCreatetime(String createtime) {            this.createtime = createtime;        }        public int getOrderid() {            return orderid;        }        public void setOrderid(int orderid) {            this.orderid = orderid;        }        public double getPrice() {            return price;        }        public void setPrice(double price) {            this.price = price;        }        public int getStatus() {            return status;        }        public void setStatus(int status) {            this.status = status;        }        public String getTitle() {            return title;        }        public void setTitle(String title) {            this.title = title;        }        public int getUid() {            return uid;        }        public void setUid(int uid) {            this.uid = uid;        }    }}
//依赖

compile 'com.google.code.gson:gson:2.8.1'compile 'com.squareup.okhttp3:okhttp:3.9.0'compile 'com.android.support:recyclerview-v7:27.0.2'compile 'com.github.bumptech.glide:glide:3.7.0'implementation 'com.android.support:design:27.0.2'compile 'com.squareup.okhttp3:logging-interceptor:3.9.0'

原创粉丝点击