广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-04-07 07:50:15 次阅读 稿源:互联网
    广告

    代码如下:

    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;
     }
    }

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告