订单
来源:互联网 发布:淘宝咨询客服人工服务 编辑:程序博客网 时间: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); } }); }}//OrderActivity//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>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//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>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); }}//MyInterceptorpackage 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); } }}//RvAllAdapter//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>
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'
阅读全文
0 0
- 订单
- 订单
- 订单
- 订单
- 订单
- 订单
- 订单
- 订单
- 订单
- 订单
- 订单
- 订单
- 客户订单 生产订单
- 订单程序
- 耐用品订单
- 订单状态
- 订单评论:
- 内部订单
- application.properties的读取
- 小程序返回上界面不刷新问题
- MySQL中进行树状所有子节点的查询
- java三种定时器
- 面试题总结——JAVA高级工程师(一)
- 订单
- springMVC @RequestMapping 设置后 会默认将返回字符串拼成 .jsp 地址形式
- C语言面试题----printf()的参数
- DescriptionResourcePathLocationType Dynamic Web Module 3.0 requires Java 1.6 or newer
- 关于 IntelliJ IDEA 2016的激活
- 蓝桥杯 基础练习 完美的代价 【贪心 + string】
- nbg
- tomcat配置完成后eclipse启动不了问题解决
- exp/imp命令以及commit=y参数