MVP采用的一对一,也就是说一个类对应一个接口
一、添加依赖
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
二、添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
三、主要代码
1>HttpURLConnection网络请求工具类
public class HttpUtils {
public static String getString(String urls) throws Exception {
URL url = new URL(urls);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream inputStream = connection.getInputStream();
String s = setStream(inputStream);
return s;
}
private static String setStream(InputStream inputStream) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder = new StringBuilder();
String con = "";
while ((con = reader.readLine()) != null) {
builder.append(con);
}
return builder.toString();
}
}
2>MyCallBack接口
public interface MyCallBack<T> {
//最终的接口回调,网络请求的成功或失败的数据
void success(T data);
void error(String error);
}
3>M层的接口
public interface Model {
void getData(String urls, MyCallBack myCallBack);
}
4>M层对应的类
public class ModelImpl implements Model {
private MyCallBack myCallBack;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 1) {
NewsBean data = (NewsBean) msg.obj;
myCallBack.success(data);
}
}
};
@