我的订单


依赖

//OkHttp
compile 'com.squareup.okhttp3:okhttp:3.9.0'
//Gson:
compile 'com.google.code.gson:gson:2.8.2'
权限

<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: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="bwie.com.wodedingdan.MainActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textSize="25dp"
            android:text="订单列表"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/sandian"
            android:onClick="sandian"
            android:layout_alignParentRight="true"/>
    </RelativeLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/state_bian"
            android:layout_weight="1"
            android:id="@+id/btn_dzf"
            android:textColor="#f00"
            android:text="待支付"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/state_bian"
            android:layout_weight="1"
            android:id="@+id/btn_yzf"
            android:text="已支付"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/state_bian"
            android:layout_weight="1"
            android:id="@+id/btn_yqx"
            android:text="已取消"/>
    </LinearLayout>

    <FrameLayout
        android:id="@+id/framelayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></FrameLayout>
</LinearLayout>
dzf_layout

<?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">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/dzf_listview"></ListView>
</LinearLayout>
dzf_listview_layout

<?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">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <!-- 订单名称 -->
        <TextView
            android:id="@+id/order_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="订单列表承德市标题"
            android:textSize="20dp"
            android:layout_weight="1"/>
        <!-- 订单状态 -->
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""/>
        <TextView
            android:id="@+id/order_state"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20dp"
            android:text="yiqyxia"/>
    </LinearLayout>
    <TextView
        android:id="@+id/order_price"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#f00"
        android:textSize="20dp"
        android:text="99.99"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/order_time"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="订单创建时间2018-01-13"/>
        <Button
            android:id="@+id/order_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="取消订单"
            />
    </LinearLayout>
</LinearLayout>
popupwindow_layout

<?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"
    android:gravity="center"
    android:background="#444F47">

    <TextView
        android:id="@+id/dzf"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="待支付"
        android:textColor="#fff" />

    <TextView
        android:id="@+id/yzf"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="已支付"
        android:textColor="#fff" />

    <TextView
        android:id="@+id/yqx"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="已取消"
        android:textColor="#fff" />
</LinearLayout>
yqx_layout

<?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">

    <ListView
        android:id="@+id/yqx_listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></ListView>
</LinearLayout>
yzf_layout

<?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">
    <ListView
        android:id="@+id/yzf_listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></ListView>
</LinearLayout>
代码

MainActivity

package bwie.com.wodedingdan;

import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

import bwie.com.wodedingdan.fragment.DZFFragment;
import bwie.com.wodedingdan.fragment.YQXFreament;
import bwie.com.wodedingdan.fragment.YZFFreament;
import bwie.com.wodedingdan.persenter.Persenter;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Persenter persenter;
    private TextView dzf;
    private TextView yzf;
    private TextView yqx;
    private int index = 0;
    private PopupWindow popupWindow;
    private Button btn_dzf;
    private Button btn_yqx;
    private Button btn_yzf;
    private List<Fragment> fragments;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_dzf = findViewById(R.id.btn_dzf);
        btn_yqx = findViewById(R.id.btn_yqx);
        btn_yzf = findViewById(R.id.btn_yzf);

        //fragment集合
        fragments = new ArrayList<>();
        fragments.add(new DZFFragment());
        fragments.add(new YZFFreament());
        fragments.add(new YQXFreament());


        btn_dzf.setOnClickListener(this);
        btn_yqx.setOnClickListener(this);
        btn_yzf.setOnClickListener(this);

        persenter = new Persenter();
    }

    /**
     * 点击三点图片时
     * 弹出popupwindow框,实现矿中按钮的点击事件,获得一个状态值
     * 使用状态值来获取对应的状态列表
     */
    public void sandian(View view) {
        View inflate = LayoutInflater.from(MainActivity.this).inflate(R.layout.popupwindow_layout, null);
        popupWindow = new PopupWindow(inflate, 200, ViewGroup.LayoutParams.WRAP_CONTENT);
        popupWindow.setOutsideTouchable(true);
        popupWindow.setBackgroundDrawable(new BitmapDrawable());
        dzf = inflate.findViewById(R.id.dzf);
        yzf = inflate.findViewById(R.id.yzf);
        yqx = inflate.findViewById(R.id.yqx);
        dzf.setOnClickListener(this);
        yzf.setOnClickListener(this);
        yqx.setOnClickListener(this);
        popupWindow.showAtLocation(inflate, Gravity.NO_GRAVITY, 800, 200);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            //popupwindow点击事件
            case R.id.dzf:
                String s = dzf.getText().toString();
                index = 0;
                Toast.makeText(MainActivity.this, s + index, Toast.LENGTH_LONG).show();
                popupWindow.dismiss();
                btn_dzf.setTextColor(Color.RED);
                btn_yqx.setTextColor(Color.BLACK);
                btn_yzf.setTextColor(Color.BLACK);
                getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,fragments.get(index)).commit();
                break;
            case R.id.yzf:
                String s1 = yzf.getText().toString();
                index = 1;
                Toast.makeText(MainActivity.this, s1 + index, Toast.LENGTH_LONG).show();
                popupWindow.dismiss();
                btn_yzf.setTextColor(Color.RED);
                btn_dzf.setTextColor(Color.BLACK);
                btn_yqx.setTextColor(Color.BLACK);
                getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,fragments.get(index)).commit();
                break;
            case R.id.yqx:
                String s2 = yqx.getText().toString();
                index = 2;
                Toast.makeText(MainActivity.this, s2 + index, Toast.LENGTH_LONG).show();
                popupWindow.dismiss();
                btn_yqx.setTextColor(Color.RED);
                btn_dzf.setTextColor(Color.BLACK);
                btn_yzf.setTextColor(Color.BLACK);
                getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,fragments.get(index)).commit();
                break;
            //按钮的点击事件
            case R.id.btn_dzf:
                btn_dzf.setTextColor(Color.RED);
                btn_yqx.setTextColor(Color.BLACK);
                btn_yzf.setTextColor(Color.BLACK);
                index = 0;
                getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,fragments.get(index)).commit();
                break;
            case R.id.btn_yzf:
                btn_yzf.setTextColor(Color.RED);
                btn_dzf.setTextColor(Color.BLACK);
                btn_yqx.setTextColor(Color.BLACK);
                index = 1;
                getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,fragments.get(index)).commit();
                break;
            case R.id.btn_yqx:
                btn_yqx.setTextColor(Color.RED);
                btn_dzf.setTextColor(Color.BLACK);
                btn_yzf.setTextColor(Color.BLACK);
                index = 2;
                getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,fragments.get(index)).commit();
                break;
        }
    }
}
DZFBean

package bwie.com.wodedingdan;

import java.util.List;

/**
 * Created by W on 2018/1/14.
 */

public class DZFBean {
    /**
     * msg : 请求成功
     * code : 0
     * data : [{"createtime":"2017-12-19T20:28:57","orderid":3584,"price":99.99,"status":0,"title":"订单测试标题71","uid":71},{"createtime":"2017-12-20T10:35:23","orderid":3623,"price":99.99,"status":0,"title":"订单测试标题71","uid":71},{"createtime":"2017-12-20T10:36:37","orderid":3627,"price":99.99,"status":0,"title":"订单测试标题71","uid":71},{"createtime":"2017-12-20T10:36:40","orderid":3628,"price":99.99,"status":0,"title":"订单测试标题71","uid":71},{"createtime":"2017-12-20T10:37:13","orderid":3630,"price":99.99,"status":0,"title":"订单测试标题71","uid":71},{"createtime":"2017-12-20T10:48:18","orderid":3633,"price":99.99,"status":0,"title":"订单测试标题71","uid":71},{"createtime":"2017-12-20T11:12:30","orderid":3643,"price":99.99,"status":0,"title":"订单测试标题71","uid":71},{"createtime":"2017-12-20T11:27:58","orderid":3680,"price":99.99,"status":0,"title":"订单测试标题71","uid":71},{"createtime":"2017-12-20T15:23:15","orderid":3968,"price":5998,"status":0,"title":"订单测试标题71","uid":71},{"createtime":"2017-12-20T17:47:38","orderid":4073,"price":99.99,"status":0,"title":"订单测试标题71","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-12-19T20:28:57
         * orderid : 3584
         * price : 99.99
         * status : 0
         * title : 订单测试标题71
         * 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;
        }
    }
}
adapter(DZFadapter)

package bwie.com.wodedingdan.adapter;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.io.IOException;
import java.util.List;

import bwie.com.wodedingdan.DZFBean;
import bwie.com.wodedingdan.R;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;


public class DZFadapter extends BaseAdapter {

    Handler handler;
    List<DZFBean.DataBean> list;
    Context context;

    public DZFadapter(List<DZFBean.DataBean> list, Context context,Handler handler) {
        this.list = list;
        this.context = context;
        this.handler = handler;
    }

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

    @Override
    public Object getItem(int i) {
        return list.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(final int i, View view, ViewGroup viewGroup) {
        final ViewHolder vh;
        if(view == null){
            vh = new ViewHolder();
            view = View.inflate(context, R.layout.dzf_listview_layout,null);
            vh.ordername = view.findViewById(R.id.order_name);
            vh.orderstate = view.findViewById(R.id.order_state);
            vh.orderprice = view.findViewById(R.id.order_price);
            vh.ordertime = view.findViewById(R.id.order_time);
            vh.orderbtn = view.findViewById(R.id.order_btn);
            view.setTag(vh);
        }else{
            vh = (ViewHolder) view.getTag();
        }
        vh.ordername.setText(list.get(i).getTitle());

        int status = list.get(i).getStatus();
        if(status == 0){
            vh.orderstate.setText("待支付");
        }else if(status == 1){
            vh.orderstate.setText("已支付");
        }else if(status == 2){
            vh.orderstate.setText("已取消");
        }
        vh.orderprice.setText(list.get(i).getPrice()+"");
        vh.ordertime.setText(list.get(i).getCreatetime());
        final int orderid = list.get(i).getOrderid();


        if(status == 0){
            vh.orderbtn.setText("取消订单");
            vh.orderbtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AlertDialog.Builder builder = new AlertDialog.Builder(context);
                    builder.setTitle("确定取消订单吗");
                    builder.setNegativeButton("否",null);
                    builder.setPositiveButton("是", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int in) {
                            Log.d("TAG",orderid+"");
                            getOk("https://www.zhaoapi.cn/product/updateOrder?uid=71&orderId="+orderid+"&status=2",context);
                        }
                    });
                    builder.create();
                    builder.show();
                }
            });
        }else if(status == 1){
            vh.orderbtn.setText("查看订单");
            vh.orderbtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(context,"1",Toast.LENGTH_LONG).show();
                }
            });
        }else if(status == 2){
            vh.orderbtn.setText("查看订单");
            vh.orderbtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(context,"2",Toast.LENGTH_LONG).show();
                }
            });
        }

        return view;
    }

    private void getOk(String s, final Context context) {
        OkHttpClient ok = new OkHttpClient();
        Request request = new Request.Builder()
                .url(s)
                .build();
        ok.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if(response.isSuccessful()){
                    Message message = Message.obtain();
                    message.what = 0;
                    handler.sendMessage(message);
                }
            }
        });
    }

    class ViewHolder{
        TextView ordername;
        TextView orderstate;
        TextView orderprice;
        TextView ordertime;
        Button orderbtn;
    }
}
fragment

DZFFragment

package bwie.com.wodedingdan.fragment;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

import com.google.gson.Gson;

import java.io.IOException;
import java.util.List;

import bwie.com.wodedingdan.DZFBean;
import bwie.com.wodedingdan.R;
import bwie.com.wodedingdan.adapter.DZFadapter;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;


public class DZFFragment extends Fragment {

    private View view;
    private ListView lv;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what == 0){
                Button btn = (Button) msg.obj;
                dzFadapter.notifyDataSetChanged();
                Toast.makeText(getActivity(),"已取消",Toast.LENGTH_LONG).show();
            }
        }
    };
    private DZFadapter dzFadapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.dzf_layout,container,false);
        lv = view.findViewById(R.id.dzf_listview);
        getOk();
        return view;
    }

    private void getOk() {
        OkHttpClient ok = new OkHttpClient();
        Request request = new Request.Builder()
                .url("https://www.zhaoapi.cn/product/getOrders?uid=71&status=0")
                .build();
        ok.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if(response.isSuccessful()){
                    String json = response.body().string();
                    DZFBean dzfBean = new Gson().fromJson(json, DZFBean.class);
                    final List<DZFBean.DataBean> data = dzfBean.getData();
                    getActivity().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            dzFadapter = new DZFadapter(data,getActivity(),handler);
                            lv.setAdapter(dzFadapter);
                        }
                    });
                }
            }
        });
    }
}
YQXFragment

package bwie.com.wodedingdan.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

import com.google.gson.Gson;

import java.io.IOException;
import java.util.List;

import bwie.com.wodedingdan.DZFBean;
import bwie.com.wodedingdan.R;
import bwie.com.wodedingdan.adapter.DZFadapter;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class YQXFreament extends Fragment {

    private View view;
    private ListView lv;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.yqx_layout,container,false);
        lv = view.findViewById(R.id.yqx_listview);
        getOk();
        return view;
    }

    private void getOk() {
        OkHttpClient ok = new OkHttpClient();
        Request request = new Request.Builder()
                .url("https://www.zhaoapi.cn/product/getOrders?uid=71&status=2")
                .build();
        ok.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if(response.isSuccessful()){
                    String json = response.body().string();
                    DZFBean dzfBean = new Gson().fromJson(json, DZFBean.class);
                    final List<DZFBean.DataBean> data = dzfBean.getData();
                    getActivity().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            DZFadapter dzFadapter = new DZFadapter(data,getContext(),null);
                            lv.setAdapter(dzFadapter);
                        }
                    });
                }
            }
        });
    }
}
YZFFragment

package bwie.com.wodedingdan.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

import com.google.gson.Gson;

import java.io.IOException;
import java.util.List;

import bwie.com.wodedingdan.DZFBean;
import bwie.com.wodedingdan.R;
import bwie.com.wodedingdan.adapter.DZFadapter;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;


public class YZFFreament extends Fragment {

    private View view;
    private ListView lv;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.yzf_layout,container,false);
        lv = view.findViewById(R.id.yzf_listview);
        getOk();
        return view;
    }

    private void getOk() {
        OkHttpClient ok = new OkHttpClient();
        Request request = new Request.Builder()
                .url("https://www.zhaoapi.cn/product/getOrders?uid=71&status=1")
                .build();
        ok.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if(response.isSuccessful()){
                    String json = response.body().string();
                    DZFBean dzfBean = new Gson().fromJson(json, DZFBean.class);
                    final List<DZFBean.DataBean> data = dzfBean.getData();
                    getActivity().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            DZFadapter dzFadapter = new DZFadapter(data,getContext(),null);
                            lv.setAdapter(dzFadapter);
                        }
                    });
                }
            }
        });
    }
}
model(Model)

package bwie.com.wodedingdan.model;

public class Model {
}
persenter(Persenter)

package bwie.com.wodedingdan.persenter;

public class Persenter {
}
utils(OKHttpUtils)

package bwie.com.wodedingdan.utils;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;


public class OkHttpUtils {

    private static OkHttpClient okHttpClient = null;

    private OkHttpUtils() {
    }

    //使用单例模式懒汉式设计模式,安全
    public static OkHttpClient getInstance() {
        if (okHttpClient == null) {
            synchronized (OkHttpUtils.class) {
                okHttpClient = new OkHttpClient.Builder()
                        .writeTimeout(5000, TimeUnit.SECONDS)
                        .readTimeout(5000, TimeUnit.SECONDS)
                        .connectTimeout(5000, TimeUnit.SECONDS)
                        .build();
            }
        }
        return okHttpClient;
    }

    /**
     * get请求
     * 参数1 url
     * 参数2 回调Callback
     */
    public static void doGet(String oldUrl, Callback callback) {
        //地址是不是有问号,如果有问号的haul判断是不是最后一位,不是最后一位又要怎么处理
        Map<String, String> map = new HashMap<>();
        map.put("source", "android");
        StringBuilder builder = new StringBuilder();//拼接好的新地址串存储到了stringbuider中

        if (oldUrl.contains("?")) {
            if (oldUrl.indexOf("?") == oldUrl.length() - 1) {

            } else {
                builder.append("&");
            }
        } else {
            builder.append("?");
        }
        for (Map.Entry<String, String> entry : map.entrySet()) {
            builder.append(entry.getKey())
                    .append("?")
                    .append(entry.getValue())
                    .append("&");
        }
        if (builder.indexOf("&") != -1) {
            builder.deleteCharAt(builder.indexOf("&"));
        }
        String newUrl = builder.toString();
        OkHttpClient okHttpClient = OkHttpUtils.getInstance();
        Request request = new Request.Builder()
                .url(newUrl)
                .build();
        Call call = okHttpClient.newCall(request);
        call.enqueue(callback);
    }

    /**
     * post请求
     * 参数1 url
     * 参数2 Map<String, String> params post请求的时候给服务器传的数据
     * add..("","")
     * add()
     */
    public static void doPost(String oldUrl, Map<String, String> params, Callback callback) {


        OkHttpClient okHttpClient = OkHttpUtils.getInstance();
        FormBody.Builder requestBody = new FormBody.Builder();

        requestBody.add("source", "android");
        for (String key : params.keySet()) {
            requestBody.add(key, params.get(key));
        }
        Request request = new Request.Builder()
                .post(requestBody.build())
                .url(oldUrl)
                .build();
        Call call = okHttpClient.newCall(request);
        call.enqueue(callback);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值