自定义控件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
原创粉丝点击