android listview 获取viewholder,Android ViewHolder 的基本使用
标签: Android Adapter ViewHolder
Adapter 的理解
Adapter :适配器,因为 ListView 是一个 View ,不能添加子项,因此在呈现数据的时候就需要某种工具将数据呈现在 ListView 上,而 Adapter 就能充当此角色。常用的 Adapter:ArrayAdapter、BaseAdapter等。
ViewHolder 的理解
要想使用 ListView 就需要编写一个 Adapter 将数据适配到 ListView上,而为了节省资源提高运行效率,一般自定义类 ViewHolder 来减少 findViewById() 的使用以及避免过多地 inflate view,从而实现目标。
Adapter的定义
继承 BaseAdapter (可在继承的时候指定泛型,扩展使用);
重写四个基本方法:
getCount():获取数据的总的数量,返回 int 类型的结果;
getItem(int position) :获取指定位置的数据,返回该数据;
getItemId(int position):获取指定位置数据的id,返回该数据的id,一般以数据所在的位置作为它的id;
getView(int position,View convertView,ViewGroup parent):关键方法,用于确定列表项
创建 ViewHolder (包含列表项的控件。)
代码展示(部分)
public class MyListAdapter extends BaseAdapter // 类定义
// 自定义数据集与布局加载器
List notes;
LayoutInflater inflater;
/** 构造方法 */
public MyListAdapter(Context context,List notes){
this.notes = notes;
inflater = LayoutInflater.from(context);
}
/** 重写方法 */
@Override
public int getCount(){
return notes.size();
}
@Override
public Object getItem(int position){
return notes.get(position);
}
@Override
public long getItemId(int position){
return position;
}
@Override
public View getView(int position,View convertView,ViewGroup parent){
ViewHolder viewHolder;
// 若无可重用的 view 则进行加载
if(converView == null){
convertView = inflater.inflate('列表项布局文件',parent,false);
// 初始化 ViewHolder 方便重用
viewHolder = new ViewHolder();
viewHolder.tvTitle = (TextView) convertView.findViewById('id1');
viewHolder.tvContent = (TextView) convertView.findViewById('id2');
converView.setTag(viewHolder);
}else{ // 否则进行重用
viewHolder = (ViewHolder)convertView.getTag();
}
// 获得条目内容对象
Note note = notes.get(position);
// 设置内容(Note Bean 需要自定义)
viewHolder.tvTitle.setText(note.getTitle());
viewHolder.tvContent.setText(note.getContent());
return converView;
}
/** 创建 ViewHolder */
class ViewHolder{
TextView tvTitle;
TextView tvContent;
}
至此,一个比较基础的 Adapter 已经完成,里面包含了 ViewHolder 的基本使用,初学者可以参考次文档进行 Adapter 的编写。
2017.3.7
android listview 获取viewholder,Android ViewHolder 的基本使用相关推荐
- android listview边框颜色,Android实现带有边框的ListView和item的方法
本文实例讲述了Android实现带有边框的ListView和item的方法.分享给大家供大家参考,具体如下: 想为ListView和item四周添加边框有两种方法: 1.贴一张带有边框效果的背景图 2 ...
- android listview分页显示,Android应用中使用ListView来分页显示刷新的内容
点击按钮刷新1.效果如下: 实例如下: 上图的添加数据按钮可以换成一个进度条 因为没有数据所以我加了一个按钮添加到数据库用于测试:一般在服务器拉去数据需要一定的时间,所以可以弄个进度条来提示用户: ...
- android listview 横向滚动,Android支持水平滚动的ListView控件
前言 ListView是一个纵向滚动的列表视图,也有朋友嵌套HorizontalScrollView来实现,比如这里,但在ListView的API中明确指明了两者不可同时使用.本文分享一种办法,以方便 ...
- android listview自定义顶部,Android自定义Adapter的ListView的思路及代码
在开发中,我们经常使用到ListView这个控件.Android的API也提供了许多创建ListView适配器的快捷方式.例如ArrayAdapter.SimpleAdapter和SimpleCurs ...
- android listview divider color,android listview 属性
1. 背景色: listView设置背景色android:background="@drawable/bg",拖动或者点击list空白位置的时候发现ListItem都变成黑色. 因 ...
- android apk获取权限,Android apk 获取系统权限的方式
Android系统中,权限等级分为 ["normal" | "dangerous"| "signature" | "signatu ...
- android listview 风格,【Android】listview卡片式列表的实现
首先需要把listview的XML改一下风格,着重注意粗体部分. 特别是 android:clipToPadding="false" 并且要记得,ListView的父控件背景颜色设 ...
- android xml获取指定,android:如何从xml文件中获取信息?
我得到一个程序,从一个链接的服务器获取天气.我已经做了一些将字符串结合到URL的字符串.我现在需要从XML文件中获取信息.android:如何从xml文件中获取信息? 这是我的代码:(我更换了,为了安 ...
- android定位获取坐标系,Android 定位坐标过滤算法实现
繁星coding 1.位置服务的简介:位置服务,英文翻译为Location-Based Services,缩写为LBS,又称为定位服务或基于位置的服务,融合了GPS定位.移动通信.导航等多种技术,提供 ...
- android 温度传感器获取温度,Android 温度传感器返回当前的温度
1)温度传感器返回当前的温度,单位是摄氏度(°C). 2)具体代码如下 package com.example.androidapp; import android.hardware.Sensor; ...
最新文章
- String.format()【演示具体的例子来说明】
- SQL应用中级指南 Part4:(数据字典)
- Oracle快速克隆安装
- Oracle 9i 的安装(图解)
- python函数体以冒号起始、并且是缩进格式的_函数体以冒号起始,并且是缩进格式的。(3.0分)_学小易找答案...
- 人到中年回头想想,生命中有几个真心疼爱你的人?
- Bzoj 3196 Tyvj 1730 二逼平衡树
- 拓端tecdat|R语言:用R语言填补缺失的数据
- 高德地图 API 搜索服务 搜索定位 用不了
- 手机语音混响软件_Tone2 UltraSpace(音频混响软件)
- 水经注地图下载器注册机机器码过长_微图影像下载参数说明
- comsol 超声声场模拟_Comsol Multiphysics 声场仿真模块整体介绍
- 002HTML常用标签
- BestCoder HDU 5750 Dertouzos
- GlusterFS探究(一): dht,afr,fuse, mgmt 层 几个问题总结
- 【Linux】一篇文章彻底搞定信号!
- php 屏蔽浸膏,干浸膏含水量每100g约为
- 开发游戏需要什么知识
- 最近在“折腾”SmartQ5
- 【陈工笔记】【复盘】# 脑电数据分析及处理 #