android开发教程之使用listview显示qq联系人列表

2019-12-10 20:10:06于海丽

        }
        else{
            viewHolder=(ViewHolder)convertView.getTag();    //通过getTag()方法获得附加信息
        }
        /**
         * 这里对viewHolder中的各个控件进行相应的设置
         */
        /**
         * @author DragonGN
         * 这里出现了一个问题:在绘制当前行的ListItem时,只需要对当前行的控件进行设置,因此这里不能加一个for
         * 循环对每一个list中的每一个元素进行遍历,而应该根据当前创建的ListItem行的position,然后
         * 访问数据库list中相应位置的Map的数据,进行控件的设置!
         */
        /**
         * 注意这里必须是setBackgroundDrawable() 而不是setBackground(),后者会报错,尽管前者过期了但一样可用
         */
            viewHolder.ctPhoto.setBackgroundDrawable((Drawable)(list.get(position).get(from[0]))); 
            //Map中要添加一个Drawable对象,这里的from和to中的元素应该一一对应,其顺序也应该对应ViewHolder构造方法中控件的调用的顺序

            viewHolder.ctName.setText((String)(list.get(position).get(from[1])));
            viewHolder.ctSign.setText((String)(list.get(position).get(from[2])));    
            viewHolder.ctPhoto.setOnClickListener(new ImageListener(position));       
        return convertView;     //把这个每一行的View对象返回
    }
}

 

最后就是MainActivity类了,与因为MyAdapter的封装方式与SimpleAdpter是一样额,因此这里MainActivity的操作基本不变。

 

复制代码
package com.example.android_qqlist;