关于listView不同数据类型的加载
2016-10-19 09:02
330 查看
在聊天界面中需要使用到lisview来填充聊天对话,这个时候聊天内容不仅仅包括文字,还会有图片甚至是发红包之类的。这个时候就需要考虑vietype 了。
0.
创建两个viewtype对应的类,我这里用到的是 文字和图片对应的viewtype
1.
2.
3.
4.
重点是对数据源此时的数据类型(viewtype的类型)这部分代码进行理解!
0.
创建两个viewtype对应的类,我这里用到的是 文字和图片对应的viewtype
public class TextMessage { private String text; public TextMessage(String content) { this.text = content; } public String getText() { return text; } }
public class ImageMessage { private int imageResId; public ImageMessage(int imageResId) { this.imageResId = imageResId; } public int getImageResId() { return imageResId; } }
1.
private interface ViewType { int TEXT = 0; int IMAGE = 1; }
2.
@Override public int getItemViewType(int position) { if (getItem(position) instanceof TextMessage) { return ViewType.TEXT; } else { return ViewType.IMAGE; } } @Override public int getViewTypeCount() { return ViewTypeCount; }
3.
@Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext()); if (getItemViewType(position) == ViewType.TEXT) { if (convertView == null) { convertView = layoutInflater.inflate(R.layout.text_message_item, parent, false); } TextView textView = (TextView) convertView.findViewById(R.id.message_content); TextMessage textMessage = (TextMessage) messageList.get(position); textView.setText(textMessage.getText()); } else { if (convertView == null) { convertView = layoutInflater.inflate(R.layout.image_message_item, parent, false); } ImageView imageView = (ImageView) convertView.findViewById(R.id.message_image); ImageMessage imageMessage = (ImageMessage) messageList.get(position); imageView.setImageResource(imageMessage.getImageResId()); } return convertView; }
4.
MessageAdapter adapter = new MessageAdapter(messages); listView.setAdapter(adapter);
重点是对数据源此时的数据类型(viewtype的类型)这部分代码进行理解!
相关文章推荐
- 在adapter中继承BaseAdapter得到数据穿插数据(ListView中加载不同的类型item)
- 关于ListVIew加载数据混乱的问题分析和解决
- 关于不同数据类型之间赋值的问题
- 关于在listView中加载不同的条目
- Android Listview加载不同布局,ViewHolder类型转换异常!!!
- 关于Scrollview嵌套listview数据显示不全,上拉加载没效果问题
- listview处理不同类型数据缓存
- 解决一张表内对不同类型的数据分页加载问题
- ListView不同type加载数据
- 关于ListView的不同view的加载问题
- DevExpress GridControl同一列根据不同的数据类型加载不同的编辑控件
- android中关于ListView分页加载数据的分析
- 关于JavaScript中的不同数据类型转换判断
- 关于 android listview 加载数据错位(错乱)问题
- RecyclerView 实现多种布局(上半部Gridview样式,下半部Listview样式)以及多种数据类型实现不同布局
- Android RecyclerView 加载更多数据 及 不同类型itemView的使用
- 关于不同数据类型存储方式的的理解
- Android进阶——自定义Loader以一种更优美的方式异步加载不同类型的数据(二)
- 关于 Access 数据库中的数据类型与 Access 项目中的数据类型的不同之处[转]
- Android Listview加载不同布局,ViewHolder类型转换异常!!!