博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android BaseAdapter
阅读量:5738 次
发布时间:2019-06-18

本文共 1924 字,大约阅读时间需要 6 分钟。

ListView显示与缓存机制:
     只会加载当前屏幕所要显示的数据。显示完成就会被回收到Recycler中。
 
 
 
BaseAdapter 基本结构:
     public int getCount();     // 适配器中数据集中数据的个数
     public Object getIten(int position);     //获取数据集中与指定索引对应的数据项
     public long getItemId(int position);     //获取指定行对应的ID
     public View getView(int position,View convertView,ViewGroup parent);     //获取每一个Item的显示内容
 
 
ViewHolder优化BaseAdapter:
          创建Bean对象,用于封装数据。
          在构造方法中初始化用于映射的数据LIST.
          创建ViewHolder类,创建布局映射关系。
          判断convertView,为空则创建,并设置TAG,否则通过TAG来取出ViewHolder
          给ViewHolder中的控件设置数据。
 
 
public
class
Adapter
extends
BaseAdapter{
 
       
private
List<ItemBean>
list
;
       
private
LayoutInflater
inflater
;
       
       
public
Adapter(List<ItemBean> list,Context context){
              list=
this
.
list
;
              
//context要使用当前的Adapter的界面对象 minflater布局装载器对象
              
inflater
=LayoutInflater. from(context);
       }
       
       
@Override
       
public
int
getCount() {
              
//
TODO
Auto-generated method stub
              
return
list
.size();
       }
 
       
@Override
       
public
Object getItem(
int
position) {
              
//
TODO
Auto-generated method stub
              
return
list
.get(position);
       }
 
       
@Override
       
public
long
getItemId(
int
position) {
              
//
TODO
Auto-generated method stub
              
return
position;
       }
 
       
/**
        * 返回每一项所显示的内容
        */
       
@Override
       
public
View getView(
int
position, View convertView, ViewGroup parent) {
              ViewHold viewHold;
              
if
(convertView==
null
){
                     viewHold=
new
ViewHold();
                     convertView=
inflater
.inflate(R.layout.
item
,
null
);
                     viewHold .
ima geView
=(ImageView) convertView.findViewById(R.id.
IVimage
);
                     viewHold.
title
= (TextView) convertView.findViewById(R.id.
title
);
                     viewHold.
content
=(TextView) convertView.findViewById(R.id.
text
);
                     convertView.setTag(viewHold);
              }
else
{
                     viewHold=(ViewHold) convertView.getTag();
                     
              }
              ItemBean bean=
list
.get(position);
              viewHold.
imageView
.setImageResource(bean.getImageid());
              viewHold.
title
.setText(bean.getTitle());
              viewHold.
content
.setText(bean.getText());
              
return
convertView;
       }
       
       
       
class
ViewHold{
              
public
ImageView
imageView
;
              
public
TextView
title
;
              
public
TextView
content
;
       }
}

转载于:https://www.cnblogs.com/stareblankly/p/4844184.html

你可能感兴趣的文章
如何实现邀请好友帮抢票功能?
查看>>
深圳联通特邀湖北籍企业参观公司总部大楼举行
查看>>
告警系统主脚本、告警系统配置文件、告警系统监控项目
查看>>
Python 和 PyCharm 在 windows10 环境的安装和设置
查看>>
C语言入门基础之数组——数学和编程的完美结合(图)
查看>>
《远见》的读后感作文1000字范文
查看>>
重置密码、单用户模式、救援模式
查看>>
LAMP环境搭建1-mysql5.5
查看>>
第三课 Linux目录及文件管理、用户组管理及bash重定向
查看>>
shell 脚本攻略--小试牛刀
查看>>
spring boot view override
查看>>
bzoj 2282: [Sdoi2011]消防
查看>>
我的友情链接
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
关于C#面向对象2
查看>>
Javascript String类的属性及方法
查看>>
vim编辑器如何添加或删除多行注释
查看>>
[LeetCode] Merge Intervals
查看>>
iOS开发-按钮的基本使用
查看>>
在QT和SDL搭建的框架中使用OPENGL在SDL窗口上进行绘图
查看>>