一个简单的MVP框架

MainActivity代码
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.ListView;

import com.google.gson.Gson;
import com.li.lenovo.rikao02.adapter.MyAdapterMagic;
import com.li.lenovo.rikao02.bean.MylistBean;
import com.li.lenovo.rikao02.home.present.HomeListPresenter;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取控件
         mTextView = findViewById(R.id.mTextView);
        //初始化链接present
        HomeListPresenter homeListPresenter = new HomeListPresenter(this);
        homeListPresenter.getPresenterData();
    }

    //创建view接口
    public void getView(String mView) {
        mTextView.setText(mView);
    }
}

model层跟接口

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;

public class HomeListModeInter implements IHomeListModeInter {
    ModuleInterface moduleInterface;

    public HomeListModeInter(ModuleInterface moduleInterface) {
        this.moduleInterface = moduleInterface;
    }

    @Override
    public void getModelData(final String url) {
        OKhttp.getokhttpget(url, new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                moduleInterface.LoadSuccess(response.body().string());
            }
        });
    }

    //定义接口
    public interface ModuleInterface {
        void LoadSuccess(String data);

        void LoadFailed();
    }

}

model接口

public interface IHomeListModeInter {
    public void getModelData(String url);
}

P层类跟接口

import com.li.lenovo.rikao02.MainActivity;
import com.li.lenovo.rikao02.api.Api;
import com.li.lenovo.rikao02.home.model.HomeListModeInter;

public class HomeListPresenter implements IHomeListPresenter, HomeListModeInter.ModuleInterface {
    //view
    MainActivity mainActivity;
    private final HomeListModeInter homeListModeInter;

    public HomeListPresenter(MainActivity mainActivity) {
        this.mainActivity = mainActivity;
        homeListModeInter = new HomeListModeInter(this);
    }

    @Override
    public void getPresenterData() {
        homeListModeInter.getModelData(Api.SHOPLIST);
    }

    @Override
    public void LoadSuccess(String data) {
        mainActivity.getView(data);
    }

    @Override
    public void LoadFailed() {
        mainActivity.getView("加载失败");
    }
}

P层接口

public interface IHomeListPresenter {
    public void getPresenterData();
}

v层接口

public interface IHomeListView {
    public void getViewData(String ViewData);
}

工具类

import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;

public class OKhttp {

    private static OkHttpClient okHttpClient;
    private static Request request;

    //okhttp get异步请求方法
    public static void getokhttpget(String url, Callback callback) {
        okHttpClient = new OkHttpClient();
        request = new Request.Builder()
                .url(url)
                .method("GET", null)
                .build();
        okHttpClient.newCall(request).enqueue(callback);
    }
}

猜你喜欢

转载自blog.csdn.net/Steven_0324/article/details/85370171