自定义控件H之——聊天ListView
来源:互联网 发布:阿里云建ss 编辑:程序博客网 时间:2024/06/06 11:35
创建Adapter
package com.example.zhuang.tiaoxing;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import java.util.List;/** * Created by zhuang on 2016/4/6. */public class ChatItemListViewAdapter extends BaseAdapter { private List<ChatItemListViewBean> mData; private LayoutInflater mInflater; public ChatItemListViewAdapter(Context context, List<ChatItemListViewBean> mData) { this.mData = mData; mInflater = LayoutInflater.from(context); } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int position) { return mData.get(position); } @Override public long getItemId(int position) { return position; } /* 以下两个方法来决定具体实例化哪个布局, 从而实现在一个ListView里多个布局的添加 */ @Override public int getItemViewType(int position) { ChatItemListViewBean bean = mData.get(position); return bean.getType(); } @Override public int getViewTypeCount() { return 2; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { //判断加载哪个布局 if (getItemViewType(position) == 0) { holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.chat_item_itemin,null); holder.icon = (ImageView) convertView.findViewById(R.id.icon_in); holder.text = (TextView) convertView.findViewById(R.id.text_in); }else{ holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.chat_item_itemout,null); holder.icon = (ImageView) convertView.findViewById(R.id.icon_out); holder.text = (TextView) convertView.findViewById(R.id.text_out); } convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } holder.icon.setImageBitmap(mData.get(position).getIcon()); holder.text.setText(mData.get(position).getText()); return convertView; } public final class ViewHolder{ public ImageView icon; public TextView text; }}
javaBean:
package com.example.zhuang.tiaoxing;import android.graphics.Bitmap;/** * Created by zhuang on 2016/4/6. */public class ChatItemListViewBean { private int type; private String text; private Bitmap icon; public ChatItemListViewBean() { } public String getText() { return text; } public void setText(String text) { this.text = text; } public int getType() { return type; } public void setType(int type) { this.type = type; } public Bitmap getIcon() { return icon; } public void setIcon(Bitmap icon) { this.icon = icon; }}
测试:
package com.example.zhuang.tiaoxing;import android.graphics.BitmapFactory;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.widget.ListView;import java.util.ArrayList;import java.util.List;public class ChatItemListViewTest extends ActionBarActivity { private ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.chat_item_main); mListView = (ListView) findViewById(R.id.listView_chat); ChatItemListViewBean bean1 = new ChatItemListViewBean(); bean1.setType(0); bean1.setIcon(BitmapFactory.decodeResource(getResources(),R.drawable.test)); bean1.setText("壮少你好帅!"); ChatItemListViewBean bean2 = new ChatItemListViewBean(); bean2.setType(1); bean2.setIcon(BitmapFactory.decodeResource(getResources(), R.drawable.test4)); bean2.setText("SB熊,你好贱哦!"); ChatItemListViewBean bean3 = new ChatItemListViewBean(); bean3.setType(0); bean3.setIcon(BitmapFactory.decodeResource(getResources(),R.drawable.test)); bean3.setText("谢谢你夸奖,壮少!"); ChatItemListViewBean bean4 = new ChatItemListViewBean(); bean4.setType(1); bean4.setIcon(BitmapFactory.decodeResource(getResources(), R.drawable.test4)); bean4.setText("不客气,你一直都那么贱,连小JB都知道!"); ChatItemListViewBean bean5 = new ChatItemListViewBean(); bean5.setType(0); bean5.setIcon(BitmapFactory.decodeResource(getResources(),R.drawable.test)); bean5.setText("没有,YF比我还贱呢!"); ChatItemListViewBean bean6 = new ChatItemListViewBean(); bean6.setType(1); bean6.setIcon(BitmapFactory.decodeResource(getResources(), R.drawable.test4)); bean6.setText("半斤八两吧!JB就没你俩贱,因为他是山炮"); ChatItemListViewBean bean7 = new ChatItemListViewBean(); bean7.setType(0); bean7.setIcon(BitmapFactory.decodeResource(getResources(),R.drawable.test)); bean7.setText("哇,就壮少你最帅,好崇拜你哦,就这样被你征服!~~"); ChatItemListViewBean bean8 = new ChatItemListViewBean(); bean8.setType(1); bean8.setIcon(BitmapFactory.decodeResource(getResources(), R.drawable.test4)); bean8.setText("唱的不错,小爷赏你个小哪吒"); List<ChatItemListViewBean> data = new ArrayList<ChatItemListViewBean>(); data.add(bean1); data.add(bean2); data.add(bean3); data.add(bean4); data.add(bean5); data.add(bean6); data.add(bean7); data.add(bean8); mListView.setAdapter(new ChatItemListViewAdapter(this,data)); }}
0 0
- 自定义控件H之——聊天ListView
- 一步一步学android之控件篇——ListView自定义显示数据格式
- 自定义控件三部曲之动画篇(十三)——实现ListView Item进入动画
- 自定义控件三部曲之动画篇(十三)——实现ListView Item进入动画
- 自定义控件三部曲之动画篇(十三)——实现ListView Item进入动画
- 聊天界面之ListView
- 自定义控件之ListView下拉刷新
- Android基础之自定义控件、布局以及ListView控件
- Android自定义控件(三)——有弹性的ListView
- Android自定义控件——有弹性的ListView,ScrollView
- Android自定义控件——有弹性的ListView,ScrollView
- 自定义控件——可拖拽排序的ListView
- 自定义控件——可拖拽排序的ListView
- 23—自定义ListView【通用】适配器并实现监听控件
- Android笔记—Listview控件的自定义使用
- android 自定义ListView下拉刷新控件——自定义控件学习(五)
- (4.1.23.15)自定义控件三部曲之动画篇(十三)——实现ListView Item进入动画
- 自定义控件-ListView
- QObject::connect: Cannot queue arguments of type 'XXX'
- 第一个ios程序中的问题
- 【AJAX】$.get()方法补充知识
- memcached 命令行参数说明
- Android Studio使用记录
- 自定义控件H之——聊天ListView
- Hadoop 2.5.2 安装
- 关于android系统编译
- Android开发 图片轮播条Lanner(可无限滚动循环,自定义dots样式位置,延迟时间,滚动时间,点击事件)
- 最简单的C#socket通信
- 递归和闭包的理解
- 了解c#中的三层架构(DAL,BLL,UI)
- memcached主从复制
- 222. Count Complete Tree Nodes