Android中 自定义数据绑定适配器BaseAdapter的方法

 更新时间:2013年04月21日 14:11:07   作者:  
本篇文章小编为大家介绍,Android中 自定义数据绑定适配器BaseAdapter的方法。需要的朋友参考下

复制代码 代码如下:

public class PersonAdapter extends BaseAdapter {
 private List persons;// 要绑定的数据
 private int resource;// 绑定的一个条目界面的id,此例中即为item.xml
 private LayoutInflater inflater;// 布局填充器,它可以使用一个xml文件生成一个View对象,可以通过Context获取实例对象

 public PersonAdapter(Context context, List persons, int resource) {
  inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  this.resource = resource;
  this.persons = persons;
 }

 @Override
 public int getCount() {// 得到要绑定的数据总数
  return persons.size();
 }

 @Override
 public Object getItem(int position) {// 给定索引值,得到索引值对应的对象
  return persons.get(position);
 }

 @Override
 public long getItemId(int position) {// 获取条目id
  return position;
 }

 // ListView有缓存功能,当显示第一页页面时会创建页面对象,显示第二页时重用第一页创建好了的对象
 // 取得条目界面:position代表当前条目所要绑定的数据在集合中的索引值
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  TextView nameView = null;
  TextView phoneView = null;
  TextView amountView = null;
  if (convertView == null) {// 显示第一页的时候convertView为空
   convertView = inflater.inflate(resource, null);// 生成条目对象
   nameView = (TextView) convertView.findViewById(R.id.name);
   phoneView = (TextView) convertView.findViewById(R.id.phone);
   amountView = (TextView) convertView.findViewById(R.id.amount);

   ViewCache cache = new ViewCache();
   cache.amountView = amountView;
   cache.nameView = nameView;
   cache.phoneView = phoneView;
   convertView.setTag(cache);
  } else {
   ViewCache cache = (ViewCache) convertView.getTag();
   amountView = cache.amountView;
   nameView = cache.nameView;
   phoneView = cache.phoneView;
  }

  Person person = persons.get(position);
  // 实现数据绑定
  nameView.setText(person.getName());
  phoneView.setText(person.getPhone());
  amountView.setText(person.getAmount());
  return convertView;
 }

 private final class ViewCache {
  public TextView nameView;
  public TextView phoneView;
  public TextView amountView;
 }
}

相关文章

  • Android自定义View实现可展开、会呼吸的按钮

    Android自定义View实现可展开、会呼吸的按钮

    这篇文章主要为大家详细介绍了Android自定义View实现可展开、会呼吸的按钮,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Android文本框搜索和清空效果实现代码及简要概述

    Android文本框搜索和清空效果实现代码及简要概述

    在工作过程中可能会遇到这样一个效果:文本框输入为空时显示输入的图标;不为空时显示清空的图标,此时点击清空图标能清空文本框内输入文字,感兴趣的你可以了解下哦,或许对你学习android有所帮助
    2013-02-02
  • 利用Android封装一个有趣的Loading组件

    利用Android封装一个有趣的Loading组件

    这篇文章我们将利用Android封装一个可以自定义配置前景色和背景色的Loading组件,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-08-08
  • Android物理键盘事件解析

    Android物理键盘事件解析

    这篇文章主要为大家详细介绍了Android物理键盘事件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • Android缓存之DiskLruCache磁盘缓存的使用

    Android缓存之DiskLruCache磁盘缓存的使用

    这篇文章主要介绍了Android缓存之DiskLruCache磁盘缓存的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Android Activity Results API代替onActivityResult处理页面数据

    Android Activity Results API代替onActivityResul

    说到onActivityResult,我们已经非常熟悉来,通过在A activity启动B activity并且传入数据到B中,然后在A中通过onActivityResult来接收B中返回的数据。在最新的activity-ktx的beta版本中,谷歌已经废弃了onActivityResult
    2022-09-09
  • Android仿微信QQ设置图形头像裁剪功能

    Android仿微信QQ设置图形头像裁剪功能

    最近在做毕业设计,想有一个功能和QQ一样可以裁剪头像并设置圆形头像.图片裁剪实现方式有两种,一种是利用系统自带的裁剪工具,一种是使用开源工具Cropper。本节就为大家带来如何使用系统自带的裁剪工具进行图片裁剪
    2016-10-10
  • flutter 常见圆角处理示例详解

    flutter 常见圆角处理示例详解

    这篇文章主要介绍了flutter 常见圆角处理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Android 8.0的缓存大小和缓存清理接口方法

    Android 8.0的缓存大小和缓存清理接口方法

    今天小编就为大家分享一篇Android 8.0的缓存大小和缓存清理接口方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Android开启新线程播放背景音乐

    Android开启新线程播放背景音乐

    这篇文章主要为大家详细介绍了Android开启新线程播放背景音乐,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12

最新评论