契约类

//UserApi

package mmy.example.com.zklx2_3.Api;

public class UserApi {

public static final String USER_API = "http://www.xieast.com/api/news/news.php";

}

//LoadContract

package mmy.example.com.zklx2_3.contract;

import java.util.HashMap;

import mmy.example.com.zklx2_3.net.RequestCallBack;

public interface LoadContract {

public abstract class Lloadpresenter{
    public abstract void ppresenter(HashMap<String,String>map);
}

interface LloadModel{
    void model(HashMap<String,String>map, RequestCallBack callBack);
}

interface LloadView{
    void onSuccess(String result);
    void onFailUre(String msg);
}

}

//LoadModel
package mmy.example.com.zklx2_3.model;

import android.os.Handler;

import java.util.HashMap;

import mmy.example.com.zklx2_3.Api.UserApi;
import mmy.example.com.zklx2_3.contract.LoadContract;
import mmy.example.com.zklx2_3.net.OkHttpCallback;
import mmy.example.com.zklx2_3.net.OkHttpUtile;
import mmy.example.com.zklx2_3.net.RequestCallBack;

public class LoadModel implements LoadContract.LloadModel {

private Handler handler = new Handler();

@Override
public void model(HashMap<String, String> map, final RequestCallBack callBack) {
    OkHttpUtile.getmInsxcvczmn().doPost(UserApi.USER_API, map, new OkHttpCallback() {
        @Override
        public void onSuccess(final String result) {
            if (callBack != null){
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        callBack.onSuccess(result);
                    }
                });
            }
        }

        @Override
        public void onFailUre(final String mag) {
            if (callBack !=null){
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        callBack.onFailUre(mag);
                    }
                });
            }
        }
    });
}

}

//OkHttpCallback

package mmy.example.com.zklx2_3.net;

public interface OkHttpCallback {

void onSuccess(String result);
void onFailUre(String mag);

}

//OkHttpUtile
package mmy.example.com.zklx2_3.net;

import android.os.Handler;

import java.io.IOException;
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;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;

public class OkHttpUtile {

private Handler handler = new Handler();
private final OkHttpClient okHttpClient;
private static OkHttpUtile mInsxcvczmn;

public OkHttpUtile() {
    HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
    loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);

    okHttpClient = new OkHttpClient.Builder()
            .addInterceptor(loggingInterceptor)
            .writeTimeout(5, TimeUnit.SECONDS)
            .readTimeout(5, TimeUnit.SECONDS)
            .connectTimeout(5, TimeUnit.SECONDS)
            .build();

}

public void doPost(String apiUre, HashMap<String, String> params, final OkHttpCallback okHttpCallback) {

    FormBody.Builder formBody = new FormBody.Builder();
    if (params !=null){
        for (Map.Entry<String,String>p:params.entrySet()){
            formBody.add(p.getKey(),p.getValue());
        }
    }

    Request request = new Request.Builder().url(apiUre).post(formBody.build()).build();
    okHttpClient.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            if (okHttpCallback != null){
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        okHttpCallback.onFailUre("网络异常");
                    }
                });
            }
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            final String result = response.body().string();
            int code = response.code();
            if (200 == code){
                if (okHttpCallback != null){
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            okHttpCallback.onSuccess(result);
                        }
                    });
                }
            }
        }
    });

}

public static OkHttpUtile getmInsxcvczmn(){
    if (mInsxcvczmn == null){
        synchronized (OkHttpUtile.class){
            if (mInsxcvczmn == null){
                mInsxcvczmn = new OkHttpUtile();
            }
        }
    }
    return mInsxcvczmn;
}

public void okhttpdsaxcz(){
    if (okHttpClient !=null){
        okHttpClient.dispatcher().cancelAll();
    }
}

}

//RequestCallBack

package mmy.example.com.zklx2_3.net;

public interface RequestCallBack {

void onSuccess(String result);
void onFailUre(String msg);

}

//LoadPresenter
package mmy.example.com.zklx2_3.presenter;

import java.util.HashMap;

import mmy.example.com.zklx2_3.contract.LoadContract;
import mmy.example.com.zklx2_3.model.LoadModel;
import mmy.example.com.zklx2_3.net.RequestCallBack;

public class LoadPresenter extends LoadContract.Lloadpresenter{

private LoadContract.LloadView lloadView;
private LoadModel loadModel;

public LoadPresenter(LoadContract.LloadView lloadView) {
    this.lloadView = lloadView;
    loadModel = new LoadModel();
}

@Override
public void ppresenter(HashMap<String, String> map) {
    loadModel.model(map, new RequestCallBack() {
        @Override
        public void onSuccess(String result) {
            if (lloadView != null){
                lloadView.onSuccess(result);
            }
        }

        @Override
        public void onFailUre(String msg) {
            if (lloadView !=null){
                lloadView.onFailUre(msg);
            }
        }
    });
}

}

//MainActivity

package mmy.example.com.zklx2_3;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;

import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.HashMap;

import mmy.example.com.zklx2_3.presenter.LoadPresenter;

public class MainActivity extends AppCompatActivity {

private XRecyclerView xRecyclerView;
private LoadPresenter loadPresenter;
private int page = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    loadPresenter = new LoadPresenter(this);
    xRecyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
    HashMap<String,String> map = new HashMap<>();
    map.put("page","1");
    loadPresenter.ppresenter(map);
    xRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
        @Override
        public void onRefresh() {
            HashMap<String,String> map = new HashMap<>();
            map.put("page","1");
            loadPresenter.ppresenter(map);
            xRecyclerView.refreshComplete();
        }

        @Override
        public void onLoadMore() {


        }
    });



}



private void initView(){
    xRecyclerView = (XRecyclerView) findViewById(R.id.xListView);
}

}

//Adapter

package mmy.example.com.zklx2_3.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.jcodecraeer.xrecyclerview.XRecyclerView;

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

import mmy.example.com.zklx2_3.R;
import mmy.example.com.zklx2_3.bean.UserBean;

public class MyAdapter extends XRecyclerView.Adapter<XRecyclerView.ViewHolder> {

public Context context;
public List<UserBean.DataBean> list;

public MyAdapter(Context context) {
    this.context = context;
    this.list = new ArrayList<>();
}

public void setList(List<UserBean.DataBean> list) {
    if (list !=null){
        this.list = list;
    }
    notifyDataSetChanged();
}


@NonNull
@Override
public XRecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

    View view = LayoutInflater.from(context).inflate(R.layout.list_item, viewGroup, false);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull XRecyclerView.ViewHolder viewHolder, int i) {
    UserBean.DataBean dataBean = list.get(i);

}

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

public class ViewHolder extends RecyclerView.ViewHolder{

    public TextView price;
    public TextView name;
    public ImageView image;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);

        image = itemView.findViewById(R.id.image);
        name = itemView.findViewById(R.id.name);
        price = itemView.findViewById(R.id.price);


    }
}

}

//布局

<?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.ConstraintLayout 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”
tools:context=".MainActivity">

<com.jcodecraeer.xrecyclerview.XRecyclerView
    android:id="@+id/xListView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></com.jcodecraeer.xrecyclerview.XRecyclerView>

</android.support.constraint.ConstraintLayout>

//条目

<?xml version="1.0" encoding="utf-8"?>














//

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值