简单MVP实现
来源:互联网 发布:unity3d小地图制作 编辑:程序博客网 时间:2024/05/22 05:22
需要的依赖
compile 'com.squareup.okhttp3:okhttp:3.2.0' compile 'com.squareup.okio:okio:1.7.0' compile 'com.android.support:recyclerview-v7:26.1.0' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.loopj.android:android-async-http:1.4.9' compile 'com.squareup.okio:okio:1.5.0' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' compile 'com.google.code.gson:gson:2.8.2'
/**
* 1. 类的用途 接口回调* 2. @author forever
*/
public interface OnFinishListener {
void onSuccess(bean bean);
}
public interface beanview {
void showData(bean bean);
}
public interface beanmondel {
void getData(OnFinishListener listener);
}
public class beanmondelister implements beanmondel{
private OkHttpClient mOkHttpClient;
@Override
public void getData(final OnFinishListener listener) {
String PATH="http://result.eolinker.com/6rdnXgZ20130cc07fd3b192ce2715f6df4113e76fe201df?uri=more";
AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
asyncHttpClient.get(PATH, new TextHttpResponseHandler() {
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
}
@Override
public void onSuccess(int statusCode, Header[] headers, String responseString) {
//直接加高到主线程
Gson gson = new Gson();
bean bean = gson.fromJson(responseString, bean.class);
System.out.println("1234567890-09876567890-=-0987670-=-0987"+bean.toString());
//接口回调
if (listener!=null){
listener.onSuccess(bean);
}
}
});
// OkHttpClient client = new OkHttpClient();
// Request request = new Request.Builder()
// .get()
// .url(PATH)
// .build();
// client.newCall(request).enqueue(new Callback() {
// @Override
// public void onFailure(Call call, IOException e) {
//
// }
// @Override
// public void onResponse(Call call, final Response response) throws IOException {
//
// new Thread(new Runnable() {
// @Override
// public void run() {
// String s = response.body().toString();
//
// Gson gson = new Gson();
// bean bean = gson.fromJson(s, bean.class);
// //接口回调
// if (listener!=null){
// listener.onSuccess(bean);
// }
// }
// });
//
// }
// });
}
}
public interface beanpersenter {
void relevance();
}
public class beanpersenterinter implements beanpersenter ,OnFinishListener {
beanview beanview;
private final beanmondelister beanmondelister;
//初始化
public beanpersenterinter(beanview beanview){
this.beanview = beanview;
//多态
beanmondelister = new beanmondelister();
}
@Override
public void relevance() {
//p跟m关联
beanmondelister.getData(this);
}
@Override
public void onSuccess(bean bean) {
//关联view
beanview.showData(bean);
}
}
public class MainActivity extends AppCompatActivity implements beanview{
private RecyclerView rlr;
private LinearLayoutManager linearLayoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
rlr =findViewById(R.id.recycler);
linearLayoutManager = new LinearLayoutManager(this);
rlr.setLayoutManager(linearLayoutManager);
//p关联v
beanpersenterinter presenter = new beanpersenterinter(this);
//p关联m 做网络请求
presenter.relevance();
}
@Override
public void showData(bean bean) {
MyAdapter adapter = new MyAdapter(this,bean);
rlr.setAdapter(adapter);
}
}
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context context;
bean bean;
public MyAdapter(Context context, bean bean) {
this.context = context;
this.bean = bean;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.item, null);
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
MyViewHolder myViewHolder = (MyViewHolder) holder;
List<bean.DataBean> data = bean.getData();
bean.DataBean dataBean = data.get(0);
String title = dataBean.getNotice().get(position).getNoticeTitle();
String imageurl = dataBean.getImg().get(position).toString();
myViewHolder.tv_title.setText(title);
Picasso.with(context).load(imageurl).placeholder(R.mipmap.ic_launcher).into(myViewHolder.iv);
}
@Override
public int getItemCount() {
return bean.getData().size();
}
public class MyViewHolder extends RecyclerView.ViewHolder{
private final TextView tv_title;
private final ImageView iv;
public MyViewHolder(View itemView) {
super(itemView);
tv_title = itemView.findViewById(R.id.tv_title);
iv = itemView.findViewById(R.id.iv);
}
}
}
- MVP简单实现
- Mvp简单实现
- MVP简单登录实现
- 简单MVP实现
- java-mvp模式简单实现
- MVP架构的简单实现
- MVP简单的实现登录
- 简单实现mvp模式登录
- MVP 深引用方式的简单实现
- Android mvp的简单使用和实现
- Android中MVP模式的简单实现
- Mvp+Rxandroid+Retrofit的简单实现
- Android MVP模式的简单实现
- Android最简单的方式实现MVP
- kotlin实现 简单的MVP模式
- 简单的用MVP实现登录界面
- mvp的基本登录(简单实现)
- 简单实现断点续传+MVP+Retrofit+RxJava
- 北大,STL简单整理
- 剖析url中汉字对网站优化结果的影响
- Java并发编程基础
- Linux 常见问题
- Java中的循环语句
- 简单MVP实现
- 自定义View箭头沿着圆形滑动
- 数据蒋堂 | JOIN简化
- Yann Lecun最新演讲:机器怎样进行有效学习?
- angular添加数据
- 科学研究设计五:实验设计
- ijkplayer框架深入剖析
- 套接字
- Xcode9学习笔记62