ListView聊天
来源:互联网 发布:mysql 函数 跳出循环 编辑:程序博客网 时间:2024/04/28 01:31
ListView提供了二个方法:
getItemViewType:用来返回第postion个Item是什么类型
getViewTypeCount:返回不同布局的总数。
知道了这二个方法后,我们先来看一看效果图:
下面贴一下代码:
in.xml:
out.xml代码差不多,这里不贴了。
下面是Adapter适配器
public class ChatItemListViewAdapter extends BaseAdapter { List<Bean> mList = new ArrayList<>(); private final LayoutInflater mInflater; public ChatItemListViewAdapter(Context context, List<Bean> mList) { this.mList = mList; mInflater = LayoutInflater.from(context); } @Override public int getCount() { return mList.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View convertView, ViewGroup viewGroup) { ViewHolder holder = null; if (convertView == null) { if (getItemViewType(i) == 0) { holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.in, null); holder.icon = (ImageView) convertView.findViewById(R.id.imageView); holder.text = (TextView) convertView.findViewById(R.id.textview); } else { holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.out, null); holder.icon = (ImageView) convertView.findViewById(R.id.image_out); holder.text = (TextView) convertView.findViewById(R.id.text_out); } convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.icon.setImageBitmap(mList.get(i).getIcon()); holder.text.setText(mList.get(i).getText()); return convertView; } @Override public int getItemViewType(int position) { Bean bean = mList.get(position); return bean.getType(); } @Override public int getViewTypeCount() { return 2; } public final class ViewHolder { public ImageView icon; public TextView text; }}
为了更好的封装聊天内容,这里使用javaBean
public class Bean { private int type; private String text; private Bitmap icon; public int getType() { return type; } public void setType(int type) { this.type = type; } public String getText() { return text; } public void setText(String text) { this.text = text; } public Bitmap getIcon() { return icon; } public void setIcon(Bitmap icon) { this.icon = icon; }}
MainActivity.java代码:
public class MainActivity extends Activity { private ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = (ListView) findViewById(R.id.listview); Bean bean1 = new Bean(); bean1.setType(0); bean1.setIcon(BitmapFactory.decodeResource(getResources(),R.drawable.whitedog)); bean1.setText("Hello!"); Bean bean2 = new Bean(); bean2.setType(1); bean2.setIcon(BitmapFactory.decodeResource(getResources(),R.drawable.cat4)); bean2.setText("Hello!"); Bean bean3 = new Bean(); bean3.setType(0); bean3.setIcon(BitmapFactory.decodeResource(getResources(),R.drawable.whitedog)); bean3.setText("How old are you?"); Bean bean4 = new Bean(); bean4.setType(1); bean4.setIcon(BitmapFactory.decodeResource(getResources(),R.drawable.cat4)); bean4.setText("Twenty,and you?"); Bean bean5 = new Bean(); bean5.setType(0); bean5.setIcon(BitmapFactory.decodeResource(getResources(),R.drawable.whitedog)); bean5.setText("Oh! Me too!Hahahaha"); List<Bean> data = new ArrayList<>(); data.add(bean1); data.add(bean2); data.add(bean3); data.add(bean4); data.add(bean5); mListView.setAdapter(new ChatItemListViewAdapter(MainActivity.this,data)); }}
好了,代码演示完了,并不是很复杂。
1 0
- 聊天LIstView
- ListView聊天
- 聊天ListView
- 聊天布局(listview)
- ListView 仿微信聊天界面
- 聊天ListView使用ViewHolder
- 聊天界面之ListView
- ListView使用技巧(四):聊天ListView
- listview的一个聊天界面
- 使用ListView实现聊天界面
- ListView仿QQ群聊天
- 类似微信的聊天界面ListView
- Android开发仿QQ聊天滑动listview
- 聊天类型的通讯界面listView总结
- listview 聊天自动刷新到底部
- 类似于聊天界面的ListView的设置
- 类似于聊天界面的ListView的设置
- 使用ListView实现汽泡短信聊天
- Java+利用UDP实现简单双机通信
- Android事件总线otto学习笔记
- SQL SERVER时间格式转换
- 欢迎使用CSDN-markdown编辑器
- linux u 盘启动制作工具
- ListView聊天
- Fresco资料整理
- H264--NAL层的处理--3
- JS 本地图片预览
- 跨域的几种方式
- sort基础
- 表单的设计
- ogg同步表结构不一致
- 统计汉字长度2个英文字符=1个中文