1.场景
在使用ListView时,我们经常遇到需要在一个ListView中显示多种视图的场景,例如:聊天软件的聊天界面中,自己发送的消息在左边显示自己的头像,别人发送的消息在右边显示别人的头像,等等。
2.ListView常用方式
2.1 ListView常用的Adapter有:ArrayAdapter,SimpleAdapter,CursorAdapter。在android sdk sample的ApiDemo工程中有详细的使用方法。
2.2 当我们需要在ListView的视图中展示复杂的数据和资源,处理复杂的事件时,我们可以继承BaseAdapter,重写BaseAdapter中的方法来达到目的,主要是getView(int position, View convertView, ViewGroup parent)方法。在android sdk sample的ApiDemo工程中有详细的使用方法。
2.3 当我们需要在ListView中显示多种视图时,仍然使用继承BaseAdapter的方式,要注意的是getItemViewType(int position)和getViewTypeCount()这两个方法。
3.ListView中显示多种视图的实现方式
3.1 实现步骤
3.1.1 定义试图类型常量
我们定义了三种:
/**
* 发送的消息
*/
private static final int TYPE_SEND = 0;
/**
* 收到的消息
*/
private static final int TYPE_RECEIVE = TYPE_S