MVP列表展示
来源:互联网 发布:zcash n卡挖矿软件 编辑:程序博客网 时间:2024/05/19 12:38
//依赖://加载图片compile 'com.squareup.picasso:picasso:2.5.2'compile 'com.squareup.okio:okio:1.5.0'compile 'com.squareup.okhttp3:okhttp:3.2.0'compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'compile 'com.google.code.gson:gson:2.8.2'compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'compile 'com.loopj.android:android-async-http:1.4.9'//权限:<uses-permission android:name="android.permission.INTERNET"></uses-permission>//接口:http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0//main.xml文件:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.audrey.mvp.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/clv" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v7.widget.RecyclerView></RelativeLayout>//item.xml文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="60dp" android:orientation="horizontal"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="center_vertical"/> <ImageView android:id="@+id/iv" android:layout_width="50dp" android:layout_height="50dp" android:layout_gravity="center_vertical"/></LinearLayout>//MainActivity : public class MainActivity extends AppCompatActivity implements ShowView { private RecyclerView rlv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rlv = (RecyclerView)findViewById(R.id.clv); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); rlv.setLayoutManager(linearLayoutManager); //P关联V ShowPresentermpl presentermpl = new ShowPresentermpl(this); //P关联M 做网络请求 presentermpl.relevance(); } @Override public void showData(NewsBean newsBean) { MyAdapter adapter = new MyAdapter(this,newsBean); rlv.setAdapter(adapter); }}//适配器:public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { public MyAdapter(Context context, NewsBean newsBean) { this.context = context; this.newsBean = newsBean; } Context context; NewsBean newsBean; @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<NewsBean.DataBean> data = newsBean.getData(); NewsBean.DataBean dataBean = data.get(position); String title = dataBean.getTITLE(); String imageurl = dataBean.getIMAGEURL(); myViewHolder.tv.setText(title); Picasso.with(context).load(imageurl).placeholder(R.mipmap.ic_launcher_round).into(myViewHolder.iv); } @Override public int getItemCount() { return newsBean.getData().size(); } public class MyViewHolder extends RecyclerView.ViewHolder{ private final TextView tv; private final ImageView iv; public MyViewHolder(View itemView) { super(itemView); tv = itemView.findViewById(R.id.tv); iv = itemView.findViewById(R.id.iv); } }}//OnFinishListener :public interface OnFinishListener { void onSuccess(NewsBean newsBean);}//modle 包: // ShowModlepublic interface ShowModle { void getDate(OnFinishListener listener);} //ShowModleImpl public class ShowModleImpl implements ShowModle { @Override public void getDate(final OnFinishListener listener) { String url = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0"; AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); asyncHttpClient.get(url, 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(); NewsBean newsBean = gson.fromJson(responseString, NewsBean.class); //接口回调 if (listener != null){ listener.onSuccess(newsBean); } } }); }}//view 包: //ShowView public interface ShowView { void showData(NewsBean newsBean);}//presenter 包: //ShowPresenter public interface ShowPresenter { void relevance();} //ShowPresentermpl public class ShowPresentermpl implements ShowPresenter,OnFinishListener { ShowView showView; private final ShowModle showModle; public ShowPresentermpl(ShowView showView) { this.showView = showView; showModle = new ShowModleImpl(); } @Override public void relevance() { //P V 关联 showModle.getDate(this); } @Override public void onSuccess(NewsBean newsBean) { //关联View showView.showData(newsBean); }}
阅读全文
0 0
- MVP列表展示
- 二级列表展示购物车MVP
- MVP+Rxjava+Fresco+Retrofit实现Recyclerview列表展示
- MVP登录+recyclerview列表展示(带刷新效果)
- 展示数据使用:recyclerview,retrofit,greendao,butterknife,eventbus,fresco。实现效果图列表。MVP模式。
- andriod——Retrofit+Fresco+MVP+RxJAVA列表展示商品点击跳转此详情页面
- recyclerview展示数据(MVP)
- MVP实现列表
- 一级列表MVP封装
- 商品列表(MVp)
- LinearLayout列表展示
- 列表展示流程
- 二级列表展示
- QQ好友列表展示
- ext列表内容展示
- #4 展示列表
- 【淘淘】---展示商品列表
- "玩转“列表展示
- JS canvas实现图片显示
- 介绍Spring Cloud分布式微服务云架构
- js、mysql、java;练习
- 2017-10-30每日练习
- spring-JdbcTemplate用法笔记
- MVP列表展示
- ARM Cortex-M4和Cortex-M0+中断优先级及嵌套抢占问题
- CEO 职位也不保,盘点 2017 年 IT 界残酷的裁员事件
- 每日练习集合
- Redis 简述
- S5PV210-uboot解析(三)-start_armboot解析
- LeetCode基础-排序-选择排序
- 文章标题
- linux下qt5.9无法使用fcitx输入法