当前位置: 首页 > news >正文

ListView 控件的使用

第一步:找到ListView的控件

通过findViewById 找到ListView的控件 ListView listView = findViewById(R.id.listView);

第二步:创建Bean类 得到set和get的方法

解析获取的数据创建Bean类 得到set和get的方法

public class Bean {String nanm="";
public String getNanm() {
return nanm;}
public void setNanm(String nanm) {
this.nanm = nanm;}
}
第三步:创建MyAdpter的对象

返回找到ListView控件的页面下去创建MyAdpter的对象 传递数据到适配器MyAdpter

MyAdpter myAdpter = new MyAdpter(data, this);

listView.setAdapter(myAdpter);

第四步:创建适配器MyAdpter

创建适配器MyAdpter 继承 BaseAdapte,重点标明ViewHolder的创建是避免频繁创建view导致的内存消耗;大概意思就是-----

默认加载10个itemview,初始化的时候创建一个viewholder,并把10个itemview加载到内存里面。

接着下滑,加载5-15的item,这个时候,显示的还是只有10个view。

我们只是需要重新填充view的数据,而不需要再次创建view并加载到内存里面,这样就可以复用itemview而避免频繁创建view导致的内存消耗

public class MyAdpter extends BaseAdapter {private List<Ben> data;    //接受数据private Context context;    //接受上下文//获取传输过来的数据public MyAdpter(List<Ben> data,Context context) {this.data = data;this.context=context;}//返回多少数据@Overridepublic int getCount() {return data.size();}@Overridepublic Object getItem(int i) {return null;}@Overridepublic long getItemId(int i) {return i;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {ViewHolder viewHolder;//观察convertView随ListView滚动情况  if (view==null){viewHolder=new ViewHolder();//拿到布局view= LayoutInflater.from(context).inflate(R.layout.item,viewGroup,false);//得到各个控件的对象viewHolder.textView = view.findViewById(R.id.item);//绑定ViewHolder对象     view.setTag(viewHolder);}else {//取出ViewHolder对象 viewHolder= (ViewHolder) view.getTag();}/**设置TextView显示的内容,即我们存放在动态数组中的数据*/viewHolder.textView.setText(data.get(i).getNanm());return view;}/**存放控件ViewHolder*/ private final class ViewHolder{//存放数据有哪些TextView textView;}
}
第五步:实现点击

实现点击

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {}
});

http://www.lryc.cn/news/36434.html

相关文章:

  • 域控制器搭建以及成员加入
  • 利用 MLP(多层感知器)和 RBF(径向基函数)神经网络解决的近似和分类示例问题(Matlab代码实现)
  • 进阶C语言——数据的存储【详解】
  • KUKA机器人修改机器人名称和IP地址的具体方法示例
  • 【数据分析师求职面试指南】必备基础知识整理
  • 《开关电源宝典 降压电路(BUCK)的原理与应用》
  • R语言基础(一):注释、变量
  • Java 集合进阶(二)
  • 小孩用什么样的台灯比较好?2023眼科医生青睐的儿童台灯推荐
  • Ubuntu c++ MySQL数据库操作
  • C++11:lambda表达式
  • 【Android -- 开源库】表格 SmartTable 的基本使用
  • 自动化测试实战篇(9),jmeter常用断言方法,一文搞懂9种测试字段与JSON断言
  • vue-virtual-scroll-list虚拟列表
  • C++学习笔记(以供复习查阅)
  • 备份时间缩短为原来 1/4,西安交大云数据中心的软件定义存储实践
  • 我国近视眼的人数已经超过了六亿,国老花眼人数超过三亿人
  • 设计模式(十八)----行为型模式之策略模式
  • VUE3入门基础:input元素的type属性值说明
  • 关于供应链,一文教你全面了解什么是供应链
  • Scope作用域简单记录分析
  • ChatGPT创作恋爱甜文
  • 贝叶斯优化及其python实现
  • Lombok使用@Builder无法build父类属性
  • Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk
  • 后端开发过程中的安全问题
  • 基于Hyperledger Fabric的学位学历认证管理系统
  • jq条件判断验证,正则表达式
  • 23.3.9打卡 AtCoder Beginner Contest 259
  • JS - this指向