e12,高岗 女人,松原旅游景点大全
本文实例为大家分享了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 studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论