recyclerview展示数据(MVP)
来源:互联网 发布:蔡依林国际化知乎 编辑:程序博客网 时间:2024/06/04 19:57
首先新建4个包,分别是contract,model,view,presenter
然后添加recyclerview依赖
主布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.bwei.fragment.mvpdemolx.view.MainActivity"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/mycycler" ></android.support.v7.widget.RecyclerView></RelativeLayout>子布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="20dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tv"/></LinearLayout>代码
contract包下
public class Contract { public interface IModel{ List<String> getData(); } public interface IView{ void setData(List<String> list); } public interface IPresenter{ void showData(); }}model包下
public class Model implements Contract.IModel{ List<String> list=new ArrayList<>(); @Override public List<String> getData() { for (int i=0;i<50;i++){ list.add("条目"+i); } return list; }}presenter包下
public class Persenter implements Contract.IPresenter{ private Contract.IView iView; private Model model; public Persenter(Contract.IView iView) { this.iView = iView; model=new Model(); } @Override public void showData() { List<String> list=model.getData(); iView.setData(list); }}view包下
public class MainActivity extends AppCompatActivity implements Contract.IView{ private RecyclerView recyclerView; private Adapter adapter; private Persenter persenter=new Persenter(this); List<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = (RecyclerView) findViewById(R.id.mycycler); persenter.showData(); } @Override public void setData(List<String> list) { recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setAdapter(new Adapter(MainActivity.this,list)); }}适配器
public class Adapter extends RecyclerView.Adapter<Adapter.MyViewHolder>{ private Context context; private List<String> list=new ArrayList<>(); public Adapter(Context context, List<String> list) { this.context = context; this.list = list; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from( context).inflate(R.layout.item, parent, false)); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.tv.setText(list.get(position)); } @Override public int getItemCount() { return list.size(); } class MyViewHolder extends RecyclerView.ViewHolder { TextView tv; public MyViewHolder(View view) { super(view); tv = (TextView) view.findViewById(R.id.tv); } }}
阅读全文
0 0
- recyclerview展示数据(MVP)
- MVP模式OKhttp请求RecyclerView展示数据
- android:MVP网络请求数据,运用RecyclerView-LinearLayout展示
- MVP架构分包+OkHttp网络请求+RecyclerView展示数据
- Retrofit2 + RxJava + Okhttp + RecyclerView用MVP架构展示数据
- MVP+retrofit和Rxjava请求数据+recyclerview展示
- MVP登录+recyclerview列表展示(带刷新效果)
- Android----------RecyclerView数据展示
- MVP+RxJava+Retryfit+RecyclerView多条目展示
- MVP+Rxjava+Retryfit+分页加载+RecyclerView展示,解析以集合开头的json数据
- 展示数据使用:recyclerview,retrofit,greendao,butterknife,eventbus,fresco。实现效果图列表。MVP模式。
- MVP+Rxjava+Retryfit+分页加载+RecyclerView展示,解析以集合开头的json数据
- MVP+Retrofit+RxJava请求网络数据实现RecyclerView多条目展示
- RecyclerView+OkHttp展示网络数据
- RecyclerView加载数据进行展示
- RecyclerView瀑布流展示数据
- RecyclerView用法(一)------展示单一类型Item数据
- RecyclerView用法(一)------展示多中类型Item数据
- 毕业5年决定人的一生
- <![CDATA[ ]]>
- 基于51单片机的GPS公交自动报站系统
- MemCache超详细解读
- 需要的依赖
- recyclerview展示数据(MVP)
- DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016 解决方案
- springmvc双模板引擎
- kali各工具使用介绍
- Linux中,sqlldr命令实现本地文件插入远程数据库
- 《Java从小白到大牛精简版》之第5章 数据类型
- 数据类型和运算符
- 匹配IP地址的正则表达式(java)
- Python中 sys.argv[]的用法简明解释