<uses-permission android:name="android.permission.INTERNET"/>
activity_main布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_marginLeft="100dp"
android:layout_gravity="center_horizontal"
android:padding="15dp"
android:gravity="center"
android:textSize="23sp"
android:text="订单列表"
android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="wrap_content" />
<ImageView
android:layout_marginLeft="25dp"
android:layout_gravity="center"
android:id="@+id/image"
android:src="@drawable/lv_icon"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="40dp" />
</LinearLayout>
<TextView
android:background="#000000"
android:layout_width="match_parent"
android:layout_height="1dp" />
<RadioGroup
android:id="@+id/group"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/btn1"
android:padding="15dp"
android:gravity="center"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:button="@null"
android:textSize="20sp"
android:text="待支付"
/>
<RadioButton
android:id="@+id/btn2"
android:padding="15dp"
android:gravity="center"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:button="@null"
android:textSize="20sp"
android:text="已支付"
/>
<RadioButton
android:id="@+id/btn3"
android:padding="15dp"
android:gravity="center"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:button="@null"
android:textSize="20sp"
android:text="已取消"
/>
</RadioGroup>
<TextView
android:background="#000000"
android:layout_width="match_parent"
android:layout_height="1dp" />
<com.liaoinstan.springview.widget.SpringView
android:id="@+id/springView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerView"
/>
</com.liaoinstan.springview.widget.SpringView>
</LinearLayout>
MainActivity主类
package com.example.menglucywhh.day1120_zhoukao3;
import android.graphics.drawable.BitmapDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.example.menglucywhh.day1120_zhoukao3.adapter.MyRecyAdapter;
import com.example.menglucywhh.day1120_zhoukao3.bean.DingdanBean;
import com.example.menglucywhh.day1120_zhoukao3.callback.MyViewCallBack;
import com.example.menglucywhh.day1120_zhoukao3.callback.MyViewCallBack2;
import com.example.menglucywhh.day1120_zhoukao3.presenter.MyPresenter;
import com.liaoinstan.springview.container.DefaultFooter;
import com.liaoinstan.springview.container.DefaultHeader;
import com.liaoinstan.springview.widget.SpringView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements MyViewCallBack{
private RadioGroup radioGroup;
private RecyclerView recyclerView;
private List<DingdanBean.DataBean> listDingdan;
private MyRecyAdapter myRecyAdapter;
private ImageView imageView;
private SpringView springView;
int page=2;
int status = 0;
private MyPresenter myPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
springView = (SpringView) findViewById(R.id.springView);
imageView = (ImageView) findViewById(R.id.image);
imageView.setTag(1);//设置标记为1,,显示
radioGroup = (RadioGroup) findViewById(R.id.group);
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
//new出P层对象
myPresenter = new MyPresenter(this);
//调用p层的方法
myPresenter.getDataFromModel(page);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false);
recyclerView.setLayoutManager(linearLayoutManager);
//springview的设置
springView.setHeader(new DefaultHeader(MainActivity.this));
springView.setFooter(new DefaultFooter(MainActivity.this));
springView.setListener(new SpringView.OnFreshListener() {
@Override
public void onRefresh() {
page=1;
myPresenter.getDataFromModel(page);
springView.onFinishFreshAndLoad();
Toast.makeText(MainActivity.this,"下拉刷新成功",Toast.LENGTH_SHORT).show();
}
@Override
public void onLoadmore() {
page++;
myPresenter.getDataFromModel(page);
springView.onFinishFreshAndLoad();
Toast.makeText(MainActivity.this,"上拉加载成功",Toast.LENGTH_SHORT).show();
}
});
//引入popuowindow 的布局文件
View contentView = View.inflate(MainActivity.this,R.layout.popup_window,null);
//父窗体
final View parent = View.inflate(MainActivity.this,R.layout.activity_main,null);
//通过构造方法创建一个popupwindow
final PopupWindow popupWindow = new PopupWindow(contentView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
//出现的问题,需要设置4个下面的
popupWindow.setTouchable(true);//窗体可以触摸
popupWindow.setFocusable(true);//让窗体获取焦点
popupWindow.setOutsideTouchable(true);//设置窗体外部可以触摸
popupWindow.setBackgroundDrawable(new BitmapDrawable());//设置背景
//获取自定义的popupwindow里面的id,3个textview
TextView daizhifu = (TextView) contentView.findViewById(R.id.daizhifu);
TextView yizhifu = (TextView) contentView.findViewById(R.id.yizhifu);
TextView yiquxiao = (TextView) contentView.findViewById(R.id.yiquxiao);
daizhifu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.dismiss();//弹窗取消
status=0;
listDingdan.clear();
myPresenter.popUpQingqiu(status);
Toast.makeText(MainActivity.this,status+"",Toast.LENGTH_SHORT).show();
}
});
yizhifu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.dismiss();
status=1;
listDingdan.clear();
myPresenter.popUpQingqiu(status);
Toast.makeText(MainActivity.this,status+"",Toast.LENGTH_SHORT).show();
}
});
yiquxiao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.dismiss();
status=2;
listDingdan.clear();
myPresenter.popUpQingqiu(status);
Toast.makeText(MainActivity.this,status+"",Toast.LENGTH_SHORT).show();
}
});
//点击右上角的图片 出来popupwindow
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//显示popupwindow
popupWindow.showAsDropDown(imageView);//显示在控件的左下方
}
});
}
//实现接口重写的方法
@Override
public void viewSuccess(DingdanBean dingdanBean) {
// System.out.println(dingdanBean.getData().get(0).getTitle());
if(listDingdan==null){
listDingdan=new ArrayList<>();
}
listDingdan.addAll(dingdanBean.getData());
//new适配器
if(myRecyAdapter==null) {
myRecyAdapter = new MyRecyAdapter(MainActivity.this,listDingdan, new MyViewCallBack2() {
@Override
public void viewSuccess2(final String data) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,data,Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void viewFail2() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,"网络慢",Toast.LENGTH_SHORT).show();
}
});
}
});
// myRecyAdapter.addData(listDingdan);
recyclerView.setAdapter(myRecyAdapter);
}else{
myRecyAdapter.notifyDataSetChanged();
}
}
@Override
public void viewFail(Exception e) {
System.out.println("异常 : "+e);
}
@Override
protected void onDestroy() {
super.onDestroy();
myPresenter.detach();
}
}
封装类okhttp
OkhttpUtils类
package com.example.menglucywhh.day1120_zhoukao3.okhttp;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
/**
* Created by Menglucywhh on 2017/11/20.
*/
public class OkhttpUtils {
private static OkhttpUtils okhttpUtils = null;
private OkhttpUtils(){
}
public static OkHttpClient client;
public static OkhttpUtils getInstance(){
if(okhttpUtils==null){
okhttpUtils = new OkhttpUtils();
client = new OkHttpClient.Builder()
.readTimeout(20, TimeUnit.SECONDS)
.writeTimeout(20,TimeUnit.SECONDS)
.connectTimeout(20,TimeUnit.SECONDS)
.addInterceptor(new MyInterceptor())
.build();
}
return okhttpUtils;
}
public void asy(Map<String,String> params,String url,AbstractUiCallBack callBack){
Request request = null;
if(params!=null){
FormBody.Builder builder = new FormBody.Builder();
for(Map.Entry<String,String> entry : params.entrySet()){
builder.add(entry.getKey(),entry.getValue());
}
FormBody body = builder.build();
request = new Request.Builder()
.url(url)
.post(body)
.build();
}else{
request = new Request.Builder()
.url(url)
.build();
}
client.newCall(request).enqueue(callBack);
}
public void asy1(Map<String,Integer> params,String url,AbstractUiCallBack callBack){
Request request = null;
if(params!=null){
FormBody.Builder builder = new FormBody.Builder();
for(Map.Entry<String,Integer> entry : params.entrySet()){
builder.add(entry.getKey(),String.valueOf(entry.getValue()));
}
FormBody body = builder.build();
request = new Request.Builder()
.url(url)
.post(body)
.build();
}else{
request = new Request.Builder()
.url(url)
.build();
}
client.newCall(request).enqueue(callBack);
}
}
MyInterceptor
package com.example.menglucywhh.day1120_zhoukao3.okhttp;
import java.io.IOException;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
/**
* Created by Menglucywhh on 2017/11/20.
*/
public class MyInterceptor implements Interceptor{
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
String url = request.url().toString()+"?source=android";
Request.Builder builder = request.newBuilder();
builder.get().url(url);
Request request1 = builder.build();
Response response = chain.proceed(request1);
return response;
}
}
AbstractUiCallBack类
package com.example.menglucywhh.day1120_zhoukao3.okhttp;
import android.os.Handler;
import android.os.Looper;
import com.google.gson.Gson;
import java.io.IOException;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
/**
* Created by Menglucywhh on 2017/11/20.
*/
public abstract class AbstractUiCallBack<T> implements Callback{
public abstract void success(T t);
public abstract void fail(Exception e);
private Handler handler = null;
private Class clazz;
public AbstractUiCallBack(){
handler = new Handler(Looper.getMainLooper());
Type type = getClass().getGenericSuperclass();
Type[] arr = ((ParameterizedType)type).getActualTypeArguments();
clazz = (Class) arr[0];
}
@Override
public void onFailure(Call call, IOException e) {
fail(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
try {
String result = response.body().string();
Gson gson = new Gson();
final T t = (T) gson.fromJson(result,clazz);
handler.post(new Runnable() {
@Override
public void run() {
success(t);//成功的回调出去
}
});
}catch (Exception e){
e.printStackTrace();
fail(e);//失败的回调
}
}
}
view层
MyViewCallBack
package com.example.menglucywhh.day1120_zhoukao3.callback;
import com.example.menglucywhh.day1120_zhoukao3.bean.DingdanBean;
/**
* Created by Menglucywhh on 2017/11/20.
*/
public interface MyViewCallBack {
public void viewSuccess(DingdanBean dingdanBean);
public void viewFail(Exception e);
}
MyViewCallBack2
package com.example.menglucywhh.day1120_zhoukao3.callback;
import com.example.menglucywhh.day1120_zhoukao3.bean.DingdanBean;
/**
* Created by Menglucywhh on 2017/11/20.
*/
public interface MyViewCallBack2 {
public void viewSuccess2(String data);
public void viewFail2();
}
model层
MyModel
package com.example.menglucywhh.day1120_zhoukao3.model;
import com.example.menglucywhh.day1120_zhoukao3.bean.DingdanBean;
import com.example.menglucywhh.day1120_zhoukao3.callback.MyViewCallBack;
import com.example.menglucywhh.day1120_zhoukao3.okhttp.AbstractUiCallBack;
import com.example.menglucywhh.day1120_zhoukao3.okhttp.OkhttpUtils;
import java.io.IOException;
import java.security.PublicKey;
import java.util.HashMap;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/**
* Created by Menglucywhh on 2017/11/20.
*/
public class MyModel {
//model层中请求数据
public void getData(int page,final ModelCallBack modelCallBack) {
//调用封装好的okhttp类
Map<String,String> params = new HashMap<>();
params.put("uid","71");
String path="https://www.zhaoapi.cn/product/getOrders?uid=71&page="+page;
OkhttpUtils.getInstance().asy(null,path, new AbstractUiCallBack<DingdanBean>() {
@Override
public void success(DingdanBean dingdanBean) {
//成功返回数据
modelCallBack.success(dingdanBean);
}
@Override
public void fail(Exception e) {
modelCallBack.fail(e);
}
});
}
//model层中请求数据,待支付 已支付 已取消
public void popUpGetData(int status,final ModelCallBack modelCallBack) {
//调用封装好的okhttp类
String path="https://www.zhaoapi.cn/product/getOrders?uid=71&page=1&status="+status;
OkhttpUtils.getInstance().asy(null,path, new AbstractUiCallBack<DingdanBean>() {
@Override
public void success(DingdanBean dingdanBean) {
//成功返回数据
modelCallBack.success(dingdanBean);
}
@Override
public void fail(Exception e) {
modelCallBack.fail(e);
}
});
}
//model层中请求数据 取消订单的接口
public void quXiao(final int orderid, final ModelCallBack1 modelCallBack1) {
//调用封装好的okhttp类
//String quXiaoPath1 = "https://www.zhaoapi.cn/product/updateOrder?uid=71&orderId=\"+listDa.get(position).getOrderid()+\"&status=2";
String quXiaoPath = "https://www.zhaoapi.cn/product/updateOrder";
OkHttpClient client = new OkHttpClient();
FormBody body = new FormBody.Builder()
.add("uid","71")
.add("orderId",String.valueOf(orderid))
.add("status","2")
.build();
Request request = new Request.Builder()
.post(body)
.url(quXiaoPath)
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
modelCallBack1.fail();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
modelCallBack1.success(response.body().string());
}
});
}
//model层的接口
public interface ModelCallBack{
public void success(DingdanBean dingdanBean);
public void fail(Exception e);
}
//model层的接口
public interface ModelCallBack1{
public void success(String body);
public void fail();
}
}
presenter
MyPresenter
package com.example.menglucywhh.day1120_zhoukao3.presenter;
import com.example.menglucywhh.day1120_zhoukao3.MainActivity;
import com.example.menglucywhh.day1120_zhoukao3.bean.DingdanBean;
import com.example.menglucywhh.day1120_zhoukao3.callback.MyViewCallBack;
import com.example.menglucywhh.day1120_zhoukao3.model.MyModel;
/**
* Created by Menglucywhh on 2017/11/20.
*/
public class MyPresenter {
MyModel myModel = new MyModel();
MyViewCallBack myViewCallBack;
public MyPresenter(MyViewCallBack myViewCallBack) {
this.myViewCallBack = myViewCallBack;
}
//调用model层去访问数据
public void getDataFromModel(int page){
myModel.getData(page,new MyModel.ModelCallBack() {
@Override
public void success(DingdanBean dingdanBean) {
myViewCallBack.viewSuccess(dingdanBean);
}
@Override
public void fail(Exception e) {
myViewCallBack.viewFail(e);
}
});
}
//调用model层去访问数据
public void popUpQingqiu(int status){
myModel.popUpGetData(status,new MyModel.ModelCallBack() {
@Override
public void success(DingdanBean dingdanBean) {
myViewCallBack.viewSuccess(dingdanBean);
}
@Override
public void fail(Exception e) {
myViewCallBack.viewFail(e);
}
});
}
//防止内存泄露
public void detach(){
this.myViewCallBack = null;
}
}
适配器
MyRecyAdapter
package com.example.menglucywhh.day1120_zhoukao3.adapter;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.example.menglucywhh.day1120_zhoukao3.MainActivity;
import com.example.menglucywhh.day1120_zhoukao3.R;
import com.example.menglucywhh.day1120_zhoukao3.bean.DingdanBean;
import com.example.menglucywhh.day1120_zhoukao3.callback.MyViewCallBack2;
import com.example.menglucywhh.day1120_zhoukao3.model.MyModel;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Menglucywhh on 2017/11/20.
*/
public class MyRecyAdapter extends RecyclerView.Adapter<MyRecyAdapter.MyViewHolder>{
MyModel myModel = new MyModel();
// private List<DingdanBean.DataBean> listDa ;
Context context;
MyViewCallBack2 myViewCallBack2;
List<DingdanBean.DataBean> listDa;
public MyRecyAdapter(Context context, List<DingdanBean.DataBean> listDa, MyViewCallBack2 myViewCallBack2) {
this.myViewCallBack2 = myViewCallBack2;
this.context = context;
this.listDa = listDa;
}
//接受传来的数据 适配
/*public void addData(List<DingdanBean.DataBean> listDingdan) {
if(listDa==null){
listDa = new ArrayList<>();
}
listDa.addAll(listDingdan);
notifyDataSetChanged();
}*/
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(context,R.layout.my_recy,null);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
//设置显示
holder.price.setText("价格 : "+listDa.get(position).getPrice()+"");
holder.time.setText("创建时间 : "+listDa.get(position).getCreatetime());
holder.title.setText(listDa.get(position).getTitle());
if(listDa.get(position).getStatus()==0) {
holder.status.setText("待支付");
holder.status.setTextColor(Color.RED);
}else if(listDa.get(position).getStatus()==1){
holder.status.setText("已支付");
holder.status.setTextColor(Color.BLACK);
}else{
holder.status.setText("已取消");
holder.status.setTextColor(Color.BLACK);
}
if(listDa.get(position).getStatus()==0) {
holder.quxiaoBtn.setText("取消订单");
}else if(listDa.get(position).getStatus()==1){
holder.quxiaoBtn.setText("查看订单");
}else{
holder.quxiaoBtn.setText("查看订单");
}
holder.quxiaoBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(holder.quxiaoBtn.getText().toString().equals("取消订单")){
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("提示");
builder.setMessage("确定取消订单吗?");
builder.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//改成已取消
holder.status.setText("已取消");
holder.status.setTextColor(Color.BLACK);
holder.quxiaoBtn.setText("查看订单");
//取消的接口
String path="https://www.zhaoapi.cn/product/updateOrder?uid=71&orderId="+listDa.get(position).getOrderid()+"&status=2";
//调用model层的取消接口的方法
int orderid =listDa.get(position).getOrderid();
myModel.quXiao(orderid, new MyModel.ModelCallBack1() {
@Override
public void success(String body) {
myViewCallBack2.viewSuccess2(body);
}
@Override
public void fail() {
myViewCallBack2.viewFail2();
}
});
}
});
builder.setNegativeButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
}
}
});
}
@Override
public int getItemCount() {
return listDa==null?0:listDa.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
private final TextView title;
private final TextView status;
private final TextView price;
private final TextView time;
private final Button quxiaoBtn;
public MyViewHolder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.title);
status = (TextView) itemView.findViewById(R.id.status);
price = (TextView) itemView.findViewById(R.id.price);
time = (TextView) itemView.findViewById(R.id.time);
quxiaoBtn = (Button) itemView.findViewById(R.id.quxiao);
}
}
}
popup_window布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FDCDEC">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:padding="10dp"
android:id="@+id/daizhifu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="待支付"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:padding="10dp"
android:id="@+id/yizhifu"
android:textSize="20sp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="已支付" />
<TextView
android:padding="10dp"
android:id="@+id/yiquxiao"
android:textSize="20sp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="已取消" />
</LinearLayout>
</RelativeLayout>
适配器布局my_recy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<LinearLayout
android:padding="10dp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
android:textStyle="bold"
android:textSize="23sp"
android:text="订单测试标题"
android:layout_width="0dp"
android:layout_weight="3"
android:layout_height="wrap_content" />
<TextView
android:layout_marginLeft="200dp"
android:id="@+id/status"
android:textColor="#ff0000"
android:textSize="20sp"
android:text="待支付"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" />
</LinearLayout>
<TextView
android:textColor="#ff0000"
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/price"
android:textStyle="bold"
android:textSize="20sp"
android:text="价格"
/>
<LinearLayout
android:gravity="center_vertical"
android:padding="10dp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/time"
android:textStyle="bold"
android:textSize="20sp"
android:text="创建时间"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" />
<Button
android:layout_marginLeft="100dp"
android:id="@+id/quxiao"
android:textSize="20sp"
android:text="取消订单"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000"
/>
</LinearLayout>