package kds.szkingdom.wo.android.adapter;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView; import com.szkingdom.common.android.base.Res;
import com.szkingdom.commons.lang.StringUtils;
import com.szkingdom.modeWO.android.phone.R;
import com.trevorpage.tpsvg.SVGView;
import com.trevorpage.tpsvg.SvgRes1; public class IACTChatAdapter extends BaseAdapter
{
private Context context;
private List<IACTMsgBean> msgList; public IACTChatAdapter(Context c, List<IACTMsgBean> msgList)
{
this.context = c;
this.msgList = msgList;
} @Override
public int getCount()
{
return msgList.size();
} @Override
public Object getItem(int position)
{
return msgList.get(position);
} @Override
public long getItemId(int position)
{
return position;
} @Override
public View getView(int pos, View view, ViewGroup parent)
{
Holder holder = null;
if (view == null)
{
holder = new Holder();
LayoutInflater inflater = LayoutInflater.from(context);
view = (View) inflater.inflate(R.layout.iact_chat_msg_item, null);
holder.rl_item = (RelativeLayout) view
.findViewById(R.id.iact_chat_msg_item);
holder.rl_left = (RelativeLayout) view
.findViewById(R.id.rl_iact_chat_msg_left);
holder.rl_right = (RelativeLayout) view
.findViewById(R.id.rl_iact_chat_msg_right);
holder.tv_left = (TextView) view.findViewById(R.id.tv_user_left);
holder.tv_right = (TextView) view.findViewById(R.id.tv_user_right);
holder.iv_left = (Button) view
.findViewById(R.id.iv_iact_user_left);
holder.iv_right = (SVGView) view
.findViewById(R.id.iv_iact_user_right);
holder.tv_time_left = (TextView) view
.findViewById(R.id.tv_iact_chat_msg_time_left);
holder.tv_time_right = (TextView) view
.findViewById(R.id.tv_iact_chat_msg_time_right);
holder.ll_left = (LinearLayout) view.findViewById(R.id.ll_left);
holder.ll_right = (LinearLayout) view.findViewById(R.id.ll_right);
view.setTag(holder);
} else
{
holder = (Holder) view.getTag();
holder.rl_right.setVisibility(View.GONE);
holder.rl_left.setVisibility(View.GONE);
}
IACTMsgBean bean = msgList.get(pos);
if(!StringUtils.isEmpty(bean.getFeedbackContent())){
//客户端消息
holder.rl_right.setVisibility(View.VISIBLE);
holder.iv_right.setSVGRenderer(
SvgRes1.getSVGParserRenderer(context,
R.drawable.kds_wo_svg_sender), null);
holder.tv_right.setText(bean.getFeedbackContent());
holder.tv_time_right.setText(bean.getFeedbackTime());
holder.ll_right.setBackgroundDrawable(Res.getDrawable(R.drawable.kds_wo_png_backgroud_blue));
}
if(!StringUtils.isEmpty(bean.getReplyContent())){
//服务器端消息
holder.rl_left.setVisibility(View.VISIBLE);
holder.iv_left.setBackgroundResource(R.drawable.kds_gphone_original); holder.tv_left.setText(bean.getReplyContent());
holder.tv_time_left.setText(bean.getReplyTime());
holder.ll_left.setBackgroundDrawable(
Res.getDrawable(R.drawable.kds_wo_png_background_white));
}
return view;
} private class Holder
{
RelativeLayout rl_item;
RelativeLayout rl_left;
RelativeLayout rl_right;
TextView tv_time_left;
TextView tv_time_right;
TextView tv_left;
TextView tv_right;
Button iv_left;
SVGView iv_right;
LinearLayout ll_left;
LinearLayout ll_right;
} }

listView 多个item布局的更多相关文章

  1. ListView具有多种item布局——实现微信对话列

    这篇文章的效果也是大家常见的,各种通讯应用的对话列表都是这种方式,像微信.whatsapp.易信.米聊等.我们这篇文章也权当为回忆,形成简单的笔记.这篇文章参考了2009年Google IO中的< ...

  2. ListView实现多种item布局的方法和注意事项

    这篇文章的效果也是大家常见的,各种通讯应用的对话列表都是这种方式,像微信.whatsapp.易信.米聊等.我们这篇文章也权当为回忆,形成简单的笔记.这篇文章参考了2009年Google IO中的< ...

  3. 【转】Android ListView加载不同的item布局

    原创教程,转载请保留出处:http://www.eoeandroid.com/thread-72369-1-1.html     最近有需求需要在listView中载入不同的listItem布局,开始 ...

  4. ListView点击Item展开隐藏项(单项展开、多项展开、复杂布局时的展开处理)

    手机屏幕毕竟有限,当我们要显示较多数据时便不得不舍去一些次要信息.将主要信息优先显示,也使显示效果更加简洁美观.遇到类似的需求,我们使用最多的就是 ListView ,而假设每次点击一个 Item 都 ...

  5. RN中listView的每个item等高

    今天写ListView的每个Item的布局的时候发现,当文字太长时被截掉了不能完全显示,检查了很久发现没有设置固定高度都是可伸缩的为什么没有伸缩呢.看了很久才发现每个item是等高的,于是仔细检查才看 ...

  6. Android ListView实现不同item的方法和原理分析

    ListView实现不同item的方法和原理分析 一问题抛出Listview是android里面的重要组件,用来显示一个竖向列表,这个没有什么问题:但是有个时候列表里面的item不是一样的,如下图,列 ...

  7. 它们的定义ListView,实现Item除去滑动和滑出菜单效果

    这个程序是基于变化从网上开源项目,详情货源忘记.懒得去搜索,.假设有不合适的地方.请与我联系作者.我会及时回复和处理! 序中主要包括两个ListView,一个是实现側滑删除.一个是側滑出菜单,代码中的 ...

  8. Android处理ListView中的Item中的Button按钮不能点击的问题

    问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...

  9. Android动态加载ListView中的Item

    我这周上网看到动态增加listview的每一项item的布局,今天抽空自己写了一个,方便自己日后使用,这个效果还是很不错的,用到了Adapter的notifyDataSetChanged()方法,当点 ...

随机推荐

  1. Jsoup的简单的使用示例

    利用Jsoup中的相关方法实现网页中的数据爬去,本例子爬去的网页为比较流行的programmableweb中的mashup描述内容,然后为数据库中存在的mashup添加相应的描述. package c ...

  2. 带中横线的日期格式在iOS手机系统上 转换时间戳NaN问题

    类似于 '2019-04-01 14:13:00' 这样的日期格式转换时间戳在iOS手机上是无法转换的,需要先处理日期格式成 '2019/04/01 14:13:00' var str = '2019 ...

  3. 让break跳出外层循环的方法

    demo //在里层循环里面,想办法让外层循环的条件不成立,就可以控制外层循环结束. for(var i = 0 ; i < 10; i++){ alert(i) for(var j = 0 ; ...

  4. (转)Webpack2 + Vue2 + Vue-Router2 如何实现懒加载?

    webpack2 的中 System.import 方法将被弃用, 推荐改成以下写法: https://www.mmxiaowu.com/article/5848239bd4352863efb5546 ...

  5. IM系统中如何保证消息的可靠投递(即QoS机制)

      消息的可靠性,即消息的不丢失和不重复,是im系统中的一个难点.当初qq在技术上(当时叫oicq)因为以下两点原因才打败了icq:1)qq的消息投递可靠(消息不丢失,不重复)2)qq的垃圾消息少(它 ...

  6. 【Oracle】手工建库启动到nomount状态时错误ORA-09925,ORA-01017

    配置好pfile和口令文件后启动数据库到nomount状态下出现错误: [oracle@localhost ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2 ...

  7. PostgreSQL的HA解决方案-项目概述

    公司使用的数据库时postgresql,一直运行都很流畅,但是最近java新做的管理平台,由于登录用户较多,并发性比较大.另外新系统可能优化也存在问题,所以pg经常崩溃,所以我就开始研究如何事项pg的 ...

  8. Swift - 关键字(typealias、associatedtype)

    Typealias typealias 是用来为已经存在的类型重新定义名字的,通过命名,可以使代码变得更加清晰.使用的语法也很简单,使用typealias 关键字像使用普通的赋值语句一样,可以将某个已 ...

  9. 文件类型总结 MIME

    来源网上https://www.cnblogs.com/zhongcj/archive/2008/11/03/1325293.html {".3gp", "video/3 ...

  10. Tjoi2019 甲苯先生和大中锋的字符串 后缀自动机_差分

    tjoi胆子好大,直接出了两道送分题...... 都 9102 年了,还有省选出模板题QAQ...... Code: #include <bits/stdc++.h> #define se ...