Mvp

module:

public class MyModule {

    public void getDate(String str, HashMap<String,String> map, final MyPresenterInterface myPresenterInterface){
        /**
         * 请求数据
         */

        OkHttpUtils.doPost(str, map, new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String s = response.body().string();
                myPresenterInterface.onSuccess(s);
            }
        });


    }

}


PresenterInterface:

public interface MyPresenterInterface {
    void onSuccess(Object obj);
}

Presenter:

public class MyPresenter implements MyPresenterInterface{

    private MyModule myModule;
    private MyViewInterface myViewInterface;

    public MyPresenter(MyViewInterface myViewInterface){
        this.myModule = new MyModule();
        this.myViewInterface = myViewInterface;
    }

    public void getDate(String date, HashMap<String,String> map){
        myModule.getDate(date,map,this);
    }

    public void detachView(){
        if(myViewInterface != null){
            myViewInterface=null;
        }
    }


    @Override
    public void onSuccess(Object obj) {
        myViewInterface.onSuccess(obj);
    }
}



ViewInterface:

public interface MyViewInterface {
    void onSuccess(Object obj);
}

Activity继承的抽象类BaseActivity:

public abstract class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(setContextView());
        initView();
        initDate();
    }

    abstract void initView();

    abstract void initDate();

    abstract int setContextView();
}

Activity中需要继承BaseActivity和实现对应的接口并重写其中的方法



贴一下大概可以用到的Okhhtp工具类:

单例模式和GetPost的封装

public class OkHttpUtils {

    private OkHttpUtils(){}
    static OkHttpClient mOkHttpClient;

    public static OkHttpClient getINSTANCE(){
        if(mOkHttpClient==null){
            mOkHttpClient = new OkHttpClient().newBuilder()
                    .build();
        }
        return mOkHttpClient;
    }


    public static void doGet(String str,Callback callback){
        OkHttpClient mOkHttpClient = getINSTANCE();
        Request request = new Request.Builder()
                .url(str)
                .get()
                .build();

        mOkHttpClient.newCall(request).enqueue(callback);

    }

    public static void doPost(String str, HashMap<String,String> map,Callback callback){
        OkHttpClient mOkHttpClient = getINSTANCE();
        FormBody.Builder builder = new FormBody.Builder();

        Iterator<String> iterator = map.keySet().iterator();

        while (iterator.hasNext()){
            String key = iterator.next();
            String value = map.get(key);
            builder.add(key,value);
        }

        FormBody formBody = builder.build();

        Request request = new Request.Builder()
                .url(str)
                .post(formBody)
                .build();

        mOkHttpClient.newCall(request).enqueue(callback);

    }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值