首先最最重要的就是导入依赖和权限
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.squareup.okhttp3:okhttp:3.9.0'
compile files('libs/universal-image-loader-1.9.3.jar')
compile files('libs/gson-2.3.1.jar')
<uses-permission android:name="android.permission.INTERNET"/>
接下来就是布局文件
activity_main
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"
android:layout_width="match_parent" android:layout_height="match_parent"
tools:context="bwie.com.qingqiu.MainActivity">
<TextView
android:id="@+id/tv_tou"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:text="订单列表"
android:textSize="25sp"
android:layout_marginTop="8dp"
android:layout_centerHorizontal="true"/>
<RadioGroup
android:id="@+id/rg"
android:layout_below="@+id/tv_tou"
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rbtn_1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="待支付"
android:button="@null"
android:gravity="center"
android:textSize="15dp"/>
<RadioButton
android:id="@+id/rbtn_2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="已支付"
android:gravity="center"
android:button="@null"
android:textSize="15dp"/>
<RadioButton
android:id="@+id/rbtn_3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="已取消"
android:gravity="center"
android:button="@null"
android:textSize="15dp"/>
</RadioGroup>
<android.support.v7.widget.RecyclerView
android:layout_below="@+id/rg"
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>
</RelativeLayout>
list_item
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_margin="10dp">
<TextView
android:id="@+id/tv_1"
android:layout_marginTop="15dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="..........."/>
<TextView
android:id="@+id/tv_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FF0000"
android:layout_below="@+id/tv_1"
android:layout_marginTop="10dp"
android:text="............."/>
<TextView
android:id="@+id/tv_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_2"
android:layout_marginTop="10dp"
android:text="............."/>
<TextView
android:id="@+id/tv_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="............."
android:textColor="#FF0000"
android:layout_marginTop="10dp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="15dp"/>
<Button
android:id="@+id/btn_shan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="删除订单"
android:layout_alignBottom="@+id/tv_3"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
--------------------------------接下来就是代码-------------------------------
MainActivity
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity {
//这里是接口 可以定义自己的接口
String str="https://www.zhaoapi.cn/product/getOrders?uid=71";
RecyclerView rv;
Bean bean;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rv= (RecyclerView) findViewById(R.id.rv);
ImageLoaderConfiguration cofn = ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(cofn);
DisplayImageOptions simple = DisplayImageOptions.createSimple();
init();
okURL();
}
private void init() {
//LinearLayoutManager布局样式
LinearLayoutManager manager=new LinearLayoutManager(this);
// GridLayoutManager布局样式
//GridLayoutManager manager = new GridLayoutManager(this, 2);
//设置样式
rv.setLayoutManager(manager);
//设置方向 VERTICAL垂直方向
//想要添加分割线,必须要写上这行代码
rv.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
}
private void okURL() {
OkHttp3Utils.doGet(str, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
//Gson解析
Gson gson = new Gson();
String strs = response.body().string();
bean = gson.fromJson(strs, Bean.class);
//判断call,如果返回ture就继续执行,否则就不行
if (response.isSuccessful()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
//创建适配器
MyArder adapter = new MyArder();
//设置适配器
rv.setAdapter(adapter);
//刷新适配器
adapter.notifyDataSetChanged();
}
});
}
}
});
}
//适配器
class MyArder extends RecyclerView.Adapter<MyArder.MyViewHolder>{
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=View.inflate(MainActivity.this,R.layout.list_item,null);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.tv1.setText(bean.getData().get(position).getTitle());
holder.tv2.setText(bean.getData().get(position).getStatus()+"");
holder.tv3.setText(bean.getData().get(position).getCreatetime());
holder.tv4.setText(bean.getData().get(position).getOrderid()+"");
//点击删除订单就执行删除事件
holder.btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bean.getData().remove(position);
notifyDataSetChanged();
}
});
}
@Override
public int getItemCount() {
return bean.getData()==null?0:bean.getData().size();
}
class MyViewHolder extends RecyclerView.ViewHolder{
TextView tv1,tv2,tv3,tv4;
Button btn1;
public MyViewHolder(View itemView) {
super(itemView);
tv1= (TextView) itemView.findViewById(R.id.tv_1);
tv2= (TextView) itemView.findViewById(R.id.tv_2);
tv3= (TextView) itemView.findViewById(R.id.tv_3);
tv4= (TextView) itemView.findViewById(R.id.tv_4);
btn1= (Button) itemView.findViewById(R.id.btn_shan);
}
}
}
}
OkHttp3Utils
import android.util.Log;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
/**
* Created by BAIPEI on 2017/11/20.
*/
public class OkHttp3Utils {
private static OkHttpClient okHttpClient = null;
public OkHttp3Utils() {
}
private static OkHttpClient getOkHttpClient() {
synchronized (OkHttp3Utils.class) {
if (okHttpClient == null) {
okHttpClient = new OkHttpClient();
}
}
return okHttpClient;
}
//上传文件
public static void loadFile(String url, File file, String fileName){
OkHttpClient okHttpClient = getOkHttpClient();
//设置文件类型
RequestBody requestBody = RequestBody.create(MediaType.parse("application/octet-stream"),file);
//设置请求体
RequestBody body = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("image",fileName,requestBody)
.build();
//请求方式
Request request = new Request.Builder().url(url).post(body).build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.i("成功","成功");
}
});
}
/**
* 1.接口地址
* 2.接口回调
*/
public static void doGet(String url,Callback callback){
OkHttpClient okHttpClient = getOkHttpClient();
Request request = new Request.Builder().url(url).build();
okHttpClient.newCall(request).enqueue(callback);
}
/**
* 1.地址
* 2.接口回调
* 3.请求体
*/
public static void doPost(String url, Map<String,String> map, Callback callback){
OkHttpClient okHttpClient = getOkHttpClient();
FormBody.Builder builder = new FormBody.Builder();
//遍历map集合 设置请求体
for (String mapKey : map.keySet()){
builder.add(mapKey,map.get(mapKey));
}
//设置请求方式
Request request = new Request.Builder().url(url).post(builder.build()).build();
//执行请求方式 接口回调
okHttpClient.newCall(request).enqueue(callback);
}
/**
*1.下载地址
*/
public static void doDown(String url,Callback callback){
OkHttpClient okHttpClient = getOkHttpClient();
Request build = new Request.Builder().url(url).build();
okHttpClient.newCall(build).enqueue(callback);
}
}
下面就是Bean类
import java.util.List;
/**
* Created by BAIPEI on 2017/11/20.
*/
public class Bean {
/**
* 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;
}
}
}
下面是效果