Android RecyclerView实现数据列表展示效果

发布时间 - 2026-01-11 02:17:43    点击率:

本文实例为大家分享了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实现多级折叠列表效果(二)  # Android中RecyclerView实现多级折叠列表效果(TreeRecyclerView)  # RecyclerView实现常见的列表菜单  # Android单个RecyclerView实现列表嵌套的效果  # Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新  # 使用RecyclerView实现水平列表  # Android列表RecyclerView排列布局  # RecyclerView优雅实现复杂列表布局  # 加载  # 重写  # 大家分享  # 具体内容  # 大家多多  # 主要是  # 九宫格  # layout  # inflate  # LayoutInflater  # news_item  # align  # return  # null  # ViewHolder  # onCreateViewHolder  # mlist  # Override  # int  # viewType 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 大型企业网站制作流程,做网站需要注册公司吗?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  原生JS实现图片轮播切换效果  🚀拖拽式CMS建站能否实现高效与个性化并存?  如何用西部建站助手快速创建专业网站?  Bootstrap整体框架之JavaScript插件架构  Android仿QQ列表左滑删除操作  Laravel PHP版本要求一览_Laravel各版本环境要求对照  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  Python高阶函数应用_函数作为参数说明【指导】  MySQL查询结果复制到新表的方法(更新、插入)  如何在万网自助建站中设置域名及备案?  如何在VPS电脑上快速搭建网站?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  手机网站制作与建设方案,手机网站如何建设?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  三星网站视频制作教程下载,三星w23网页如何全屏?  详解Android中Activity的四大启动模式实验简述  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel用户密码怎么加密_Laravel Hash门面使用教程  如何用IIS7快速搭建并优化网站站点?  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  如何在IIS7中新建站点?详细步骤解析  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  如何挑选最适合建站的高性能VPS主机?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  JavaScript中的标签模板是什么_它如何扩展字符串功能  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Java垃圾回收器的方法和原理总结  微信小程序 wx.uploadFile无法上传解决办法  Laravel怎么判断请求类型_Laravel Request isMethod用法  如何快速生成高效建站系统源代码?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  网站制作大概多少钱一个,做一个平台网站大概多少钱?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  如何快速搭建FTP站点实现文件共享?  韩国服务器如何优化跨境访问实现高效连接?  电商网站制作价格怎么算,网上拍卖流程以及规则?  如何用景安虚拟主机手机版绑定域名建站?  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Laravel安装步骤详细教程_Laravel环境搭建指南