Android开发适配器系列:ListView使用自定义适配器(显示所有的联系人)

在开发中,我们经常使用到ListView这个控件。Android的AdivI也提供了许多创建ListView适配器的快捷方式。例如ArrayAdadivter、SimdivleAdadivter和SimdivleCursorAdadivter等。但你是否发现,如果采用这些系统自带的适配器,对于事件的响应只能局限在一个行单位。假设一行里面有一个按钮和一个图片控件,它们之间的响应操作是不一样的。若采用系统自带的适配器,就不能精确到每个控件的响应事件。这时,我们一般采取自定义适配器来实现这个比较精确地请求。
ListView的创建,一般要具备两大元素:
1)数据集,即要映射的字符串、图片信息之类。
2)适配器,实现把要映射的字符串、图片信息映射成视图(如Textview、Image等组件),再添加到ListView中。
一、实现细节:
下面是一个实操例子:
1、创建数据集,一般定义如下
private ArrayList<Contacts> contacts = new ArrayList<Contacts>();
2、创建适配器
public class MyListAdapter extends BaseAdapter {
	private ArrayList<Contacts> contacts = null;
	private Context mContext = null;
	public MyListAdapter(ArrayList<Contacts> contacts,Context mContext) {
		super();
		this.contacts = contacts;
		this.mContext = mContext;
	}
......
}
3、将适配器绑定到ListView控件
myAdapter = new MyListAdapter(contacts,this);
setListAdapter(myAdapter);
4、将R.layout.item布局作为一个视图,添加到listView中:
ListItemView listItemView = new ListItemView();
        if (convertView == null || position < contacts.size()) {  
	        convertView = LayoutInflater.from(mContext).inflate(R.layout.item, null);  
	        listItemView.iamge = (ImageView) convertView.findViewById(R.id.color_image);  
	        listItemView.title = (TextView) convertView.findViewById(R.id.color_title);  
	        listItemView.text = (TextView) convertView.findViewById(R.id.color_text);  
	        convertView.setTag(listItemView);
        }else{
        	listItemView = (ListItemView) convertView.getTag();
        }
二、实例源码:
AndroidManifest.xml
 <!-- 读取联系人权限 -->
    <uses-permission android:name="android.permission.READ_CONTACTS" />
main.xml
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值