Android RecyclerView实现数据列表展示效果
程序员文章站
2022-04-13 22:58:07
本文实例为大家分享了android九宫格图片展示的具体代码,供大家参考,具体内容如下
1.首先导入依赖:
compile 'com.android....
本文实例为大家分享了android九宫格图片展示的具体代码,供大家参考,具体内容如下
1.首先导入依赖:
compile 'com.android.support:recyclerview-v7:25.3.1'
2.适配器类:
public class newsadapter extends recyclerview.adapter { private view view; private context mcontext; private arraylist<newsdata.databean> mlist=new arraylist<>(); public newsadapter(context mcontext) { this.mcontext = mcontext; } //找到需要导入的布局 @override public recyclerview.viewholder oncreateviewholder(viewgroup parent, int viewtype) { view = layoutinflater.from(mcontext).inflate(r.layout.news_item, null); return new viewholder(view); } //加载相应的内容 @override public void onbindviewholder(recyclerview.viewholder holder, int position) { viewholder viewholder=(viewholder)holder; viewholder.textview.settext(""+getitem(position).getnews_title()); glide.with(mcontext).load(getitem(position).getpic_url()).into(viewholder.ima); } //手写的重置数据的方法 public void setdata(arraylist<newsdata.databean> list){ if (list!=null&&list.size()>0){ mlist.addall(list); } } //手写的获得视图的方法 public newsdata.databean getitem(int position){ return mlist.get(position); }; @override public int getitemcount() { return mlist.size(); } //定义的viewholder类继承recyclerview.viewholder 并找到布局中的id public class viewholder extends recyclerview.viewholder{ private textview textview; private imageview ima; public viewholder(view itemview) { super(itemview); textview=(textview)itemview.findviewbyid(r.id.tv); ima=(imageview)itemview.findviewbyid(r.id.image); } } }
3.主界面(用到recyclerview的主要是initdata()方法和handler):
public class mainactivity extends appcompatactivity implements imainview{ private mainpresenter mainp; private newsadapter md; private recyclerview recy; private arraylist<newsdata.databean> mlist=new arraylist<>(); private string url="http://api.expoon.com/appnews/getnewslist/type/1/p/1"; private handler hand=new handler(){ @override public void handlemessage(message msg) { super.handlemessage(msg); gson gson=new gson(); if (msg.what==1) { newsdata newsdata = gson.fromjson(msg.obj.tostring(), newsdata.class); mlist=(arraylist<newsdata.databean>) newsdata.getdata(); md.setdata((arraylist<newsdata.databean>) mlist); md.notifydatasetchanged(); } } }; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); initview(); initdata(); initdatafromserver(); } private void initview() { recy=(recyclerview)findviewbyid(r.id.recy); } private void initdatafromserver() { //加载网络数据,找p层去要 mainp.loaddatafromserver(url); } private void initdata() { mainp=new mainpresenter(this); //设置适配器 md=new newsadapter(this); //创建默认的线性layoutmanager recy.setlayoutmanager(new linearlayoutmanager(this)); recy.setadapter(md); } //重写的imainview类接口的两个方法 @override public void successfulcallback(string str) { message msg = message.obtain(); msg.what=1; msg.obj=str; hand.sendmessage(msg); } @override public void errcallback(int code, string msg) { } }
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Android使用RecyclerView实现列表数据选择操作
-
Android中RecyclerView实现多级折叠列表效果(TreeRecyclerView)
-
Android中RecyclerView实现多级折叠列表效果(二)
-
Android控件RecyclerView实现混排效果仿网易云音乐
-
Android Recyclerview实现水平分页GridView效果示例
-
ajax实现输入框文字改变展示下拉列表的效果示例
-
Vuex实现计数器以及列表展示效果
-
Android studio listview实现列表数据显示 数据循环显示效果
-
android BottomSheetDialog新控件解析实现知乎评论列表效果(实例代码)
-
Android列表动图展示的实现策略