andriod——订单查询
来源:互联网 发布:无人机模拟器软件 编辑:程序博客网 时间:2024/04/29 17:23
adapter——MyAdapter
import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;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.TextView;import com.example.week3.R;import com.example.week3.bean.OrderBean;import com.example.week3.presenter.CancleOrderPresenter;import java.util.List;public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private Context context; private List<OrderBean.DataBean> list; private final CancleOrderPresenter cancleOrderPresenter; public MyAdapter(Context context, List<OrderBean.DataBean> list) { this.context = context; this.list = list; cancleOrderPresenter = new CancleOrderPresenter(); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item, parent, false); return new MyViewHolder(view); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { final OrderBean.DataBean dataBean = list.get(position); MyViewHolder myViewHolder = (MyViewHolder) holder; myViewHolder.tv_title.setText(dataBean.getTitle()); int status = dataBean.getStatus(); if (status == 0) { myViewHolder.tv_status.setText("待支付"); myViewHolder.tv.setText("取消订单"); myViewHolder.tv_status.setTextColor(Color.RED); } else if (status == 1) { myViewHolder.tv_status.setText("已支付"); myViewHolder.tv.setText("查看订单"); myViewHolder.tv_status.setTextColor(Color.BLACK); } else { myViewHolder.tv_status.setText("已取消"); myViewHolder.tv.setText("查看订单"); myViewHolder.tv_status.setTextColor(Color.BLACK); } myViewHolder.tv_price.setText("价格:" + dataBean.getPrice()); myViewHolder.tv_time.setText("创建时间:" + dataBean.getCreatetime()); myViewHolder.tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new AlertDialog.Builder(context) .setTitle("提示") .setMessage("确定取消订单吗?") .setPositiveButton("是", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { cancleOrderPresenter.cancleOrder("1", dataBean.getOrderid() + ""); } }) .setNegativeButton("否", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .show(); } }); } @Override public int getItemCount() { return list.size(); } class MyViewHolder extends RecyclerView.ViewHolder { private final TextView tv_title; private final TextView tv_status; private final TextView tv_price; private final TextView tv_time; private final TextView tv; public MyViewHolder(View itemView) { super(itemView); tv_title = itemView.findViewById(R.id.tv_title); tv_status = itemView.findViewById(R.id.tv_status); tv_price = itemView.findViewById(R.id.tv_price); tv_time = itemView.findViewById(R.id.tv_time); tv = itemView.findViewById(R.id.tv); } }}
bean——OrderBean
public class OrderBean { 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 : 1 * 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; } }}
model——CancleOrderModel
import com.example.week3.net.Api;import com.example.week3.net.HttpUtils;import com.example.week3.net.OnNetListener;import java.io.IOException;import java.util.HashMap;import java.util.Map;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;public class CancleOrderModel { public void cancleOrder(String status, String orderId, OnNetListener onNetListener) { Map<String, String> params = new HashMap<>(); params.put("uid", "71"); params.put("orderId", orderId); params.put("status", status); HttpUtils.getHttpUtils().doPost(Api.CANCLE_ORDER, params, new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { } }); }}model——IOrderModel
import com.example.week3.bean.OrderBean;import com.example.week3.net.OnNetListener;public interface IOrderModel { public void getOrder(String status, String page, OnNetListener<OrderBean> onNetListener);}model——OrderModel
import android.os.Handler;import android.os.Looper;import com.example.week3.bean.OrderBean;import com.example.week3.net.Api;import com.example.week3.net.HttpUtils;import com.example.week3.net.OnNetListener;import com.google.gson.Gson;import java.io.IOException;import java.util.HashMap;import java.util.Map;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;public class OrderModel implements IOrderModel { private Handler handler = new Handler(Looper.getMainLooper()); @Override public void getOrder(final String status, String page, final OnNetListener<OrderBean> onNetListener) { Map<String, String> params = new HashMap<>(); params.put("uid", "71"); params.put("status", status); params.put("page", page); HttpUtils.getHttpUtils().doPost(Api.ORDER, params, new Callback() { @Override public void onFailure(Call call, final IOException e) { handler.post(new Runnable() { @Override public void run() { onNetListener.onFailure(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); handler.post(new Runnable() { @Override public void run() { onNetListener.onSuccess(orderBean); } }); } }); }}net——Api
public interface Api { public static final String ORDER = "https://www.zhaoapi.cn/product/getOrders"; public static final String CANCLE_ORDER = "https://www.zhaoapi.cn/product/updateOrder";}
net——HttpUtils
import java.util.Map;import okhttp3.Callback;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;public class HttpUtils { private static HttpUtils httpUtils; private final OkHttpClient client; private HttpUtils() { //创建OkHttpClient //创建拦截器 client = new OkHttpClient.Builder() .addInterceptor(new MyInterceptor()) .build(); } public static HttpUtils getHttpUtils() { if (httpUtils == null) { synchronized (HttpUtils.class) { if (httpUtils == null) { httpUtils = new HttpUtils(); } } } return httpUtils; } /** * 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 || params.size() == 0) { throw new RuntimeException("params is null!!!"); } // 创建Request FormBody.Builder builder = new FormBody.Builder(); for (Map.Entry<String, String> entry : params.entrySet()) { builder.add(entry.getKey(), entry.getValue()); } FormBody formBody = builder.build(); Request request = new Request.Builder() .url(url) .post(formBody) .build(); client.newCall(request).enqueue(callback); }}net——MyInterceptor
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 orginRequest = chain.request(); //先获取原始的请求参数,然后再拼接起来 FormBody orginBody = (FormBody) orginRequest.body(); FormBody.Builder builder = new FormBody.Builder(); for (int i = 0; i < orginBody.size(); i++) { String name = orginBody.name(i); String value = orginBody.value(i); builder.add(name, value); } builder.add("source", "android"); FormBody formBody = builder.build(); Request request = new Request.Builder().url(orginRequest.url()).post(formBody).build(); return chain.proceed(request); }}
net——OnNetListener
public interface OnNetListener<T> { //成功回调 public void onSuccess(T t); //失败回调 public void onFailure(Exception e);}
presenter——CancleOrderPresenter
import com.example.week3.model.CancleOrderModel;import com.example.week3.net.OnNetListener;public class CancleOrderPresenter { private CancleOrderModel cancleOrderModel; public CancleOrderPresenter() { this.cancleOrderModel = new CancleOrderModel(); } public void cancleOrder(String status, String orderId) { cancleOrderModel.cancleOrder(status, orderId, new OnNetListener() { @Override public void onSuccess(Object o) { } @Override public void onFailure(Exception e) { } }); }}presenter——MainPresenter
import com.example.week3.bean.OrderBean;import com.example.week3.model.OrderModel;import com.example.week3.net.OnNetListener;import com.example.week3.view.IMainActivity;public class MainPresenter { private OrderModel orderModel; private IMainActivity iMainActivity; public MainPresenter(IMainActivity iMainActivity) { orderModel = new OrderModel(); this.iMainActivity = iMainActivity; } public void getOrder(final boolean isRefresh, String status, String page) { orderModel.getOrder(status, page, new OnNetListener<OrderBean>() { @Override public void onSuccess(OrderBean orderBean) { iMainActivity.showData(isRefresh, orderBean.getData()); } @Override public void onFailure(Exception e) { } }); } public void dettach() { if (iMainActivity != null) { iMainActivity = null; } }}
view——IMainActivity
import com.example.week3.bean.OrderBean;import java.util.List;public interface IMainActivity { public void showData(boolean isRefresh, List<OrderBean.DataBean> list);}Main函数
import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.PopupWindow;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.TextView;import android.widget.Toast;import com.example.week3.adapter.MyAdapter;import com.example.week3.bean.OrderBean;import com.example.week3.presenter.MainPresenter;import com.example.week3.view.IMainActivity;import com.jcodecraeer.xrecyclerview.XRecyclerView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements IMainActivity, View.OnClickListener { /** * 待支付 */ private RadioButton mRb1; /** * 已支付 */ private RadioButton mRb2; /** * 已取消 */ private RadioButton mRb3; private RadioGroup mRg; private XRecyclerView mXrv; private MainPresenter mainPresenter; private int page = 1; private List<OrderBean.DataBean> list = new ArrayList<>(); private MyAdapter myAdapter; private ImageView mIvPop; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); mXrv.setLayoutManager(new LinearLayoutManager(this)); myAdapter = new MyAdapter(this, list); mXrv.setAdapter(myAdapter); //想去获取数据,测试一下数据是否获取到 mainPresenter = new MainPresenter(this); mainPresenter.getOrder(true, "1", page + ""); mXrv.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { //刷新 page = 1; mainPresenter.getOrder(true, "1", page + ""); } @Override public void onLoadMore() { //加载更多 page++; mainPresenter.getOrder(false, "1", page + ""); } }); } @Override protected void onDestroy() { super.onDestroy(); mainPresenter.dettach(); } private void initView() { mRb1 = (RadioButton) findViewById(R.id.rb1); mRb2 = (RadioButton) findViewById(R.id.rb2); mRb3 = (RadioButton) findViewById(R.id.rb3); mRg = (RadioGroup) findViewById(R.id.rg); mXrv = (XRecyclerView) findViewById(R.id.xrv); mIvPop = (ImageView) findViewById(R.id.iv_pop); mIvPop.setOnClickListener(this); } @Override public void showData(boolean isRefresh, List<OrderBean.DataBean> newList) { if (isRefresh) { //如果是刷新 list.clear(); list.addAll(newList); mXrv.refreshComplete(); } else { //如果是加载更多 list.addAll(newList); mXrv.setLoadingMoreEnabled(false); } myAdapter.notifyDataSetChanged(); } @Override public void onClick(View v) { switch (v.getId()) { default: break; case R.id.iv_pop: //弹出popupwindow View view = View.inflate(MainActivity.this, R.layout.pop_item, null); TextView tv1 = view.findViewById(R.id.tv1); TextView tv2 = view.findViewById(R.id.tv2); TextView tv3 = view.findViewById(R.id.tv3); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); PopupWindow popupWindow = new PopupWindow(view, layoutParams.width, layoutParams.height); popupWindow.showAsDropDown(mIvPop, 0, 30); tv1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "tv1", Toast.LENGTH_SHORT).show(); mainPresenter.getOrder(true, "1", "1"); } }); tv2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "tv2", Toast.LENGTH_SHORT).show(); } }); tv3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "tv3", Toast.LENGTH_SHORT).show(); } }); break; } }}//activity_main.xml
<?xml version="1.0" encoding="utf-8"?>//activity_main.xml<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"> <RelativeLayout android:layout_width="match_parent" android:layout_height="40dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="订单列表" android:textSize="25sp" /> <ImageView android:id="@+id/iv_pop" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="10dp" android:background="@drawable/lv_icon" /> </RelativeLayout> <RadioGroup android:id="@+id/rg" android:layout_width="match_parent" android:layout_height="40dp" android:gravity="center_vertical" android:orientation="horizontal"> <RadioButton android:id="@+id/rb1" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:button="@null" android:gravity="center" android:text="待支付" /> <RadioButton android:id="@+id/rb2" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:button="@null" android:gravity="center" android:text="已支付" /> <RadioButton android:id="@+id/rb3" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:button="@null" android:gravity="center" android:text="已取消" /> </RadioGroup> <com.jcodecraeer.xrecyclerview.XRecyclerView android:id="@+id/xrv" android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>
//item.xml
<?xml version="1.0" encoding="utf-8"?>//item.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="100dp" android:descendantFocusability="blocksDescendants" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" /> <TextView android:id="@+id/tv_status" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" /> </RelativeLayout> <TextView android:id="@+id/tv_price" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_centerVertical="true" android:layout_weight="1" android:textColor="#ff0000" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" /> </RelativeLayout></LinearLayout>//pop_item.xml<?xml version="1.0" encoding="utf-8"?>//pop_item.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ffffff" android:orientation="vertical"> <TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:text="待支付"></TextView> <TextView android:id="@+id/tv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:text="已支付"></TextView> <TextView android:id="@+id/tv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:text="已取消"></TextView></LinearLayout>
阅读全文
0 0
- andriod——订单查询
- andriod学习笔记——andriod框架
- mysql 查询练习——计算总订单价格大于100的订单号和总订单价格
- Andriod 单元测试—InstrumentationTestCase
- andriod—Application
- 订单分组查询策略
- mysql订单查询优化
- Andriod——环境搭建
- Andriod studio——布局
- Andriod 自动化测试—InstrumentationTestCase
- andriod—junit测试框架
- 菜鸟程序员—Andriod布局
- 2011年第一个低级BUG——CHINA-PUB(中国互动出版网)订单查询BUG
- 抓取ems订单查询状态
- 订单查询管理系统Silverlight4
- CRM_ORDER_READ 订单查询简单示例
- 发货订单复杂查询方法
- 查询近半年前订单
- 数据分析之《菜鸟侦探挑战数据分析》-3-R语言-散点图,相关系数,回归线
- leetcode---wildcard-matching---字符串,dp
- Node gs
- strtok与位运算
- windows 启动kafka
- andriod——订单查询
- 通过SP_Flash_Tool线刷失败解决方法
- 在loadrunner下获取header头信息
- Swift4
- F_A day2
- TensorFlow--tf.Variable
- rpm、srpm软件管理器介绍
- 名片识别SDK
- bootstrapTable 动态表头生成