listView 多个item布局
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布局的更多相关文章
- ListView具有多种item布局——实现微信对话列
这篇文章的效果也是大家常见的,各种通讯应用的对话列表都是这种方式,像微信.whatsapp.易信.米聊等.我们这篇文章也权当为回忆,形成简单的笔记.这篇文章参考了2009年Google IO中的< ...
- ListView实现多种item布局的方法和注意事项
这篇文章的效果也是大家常见的,各种通讯应用的对话列表都是这种方式,像微信.whatsapp.易信.米聊等.我们这篇文章也权当为回忆,形成简单的笔记.这篇文章参考了2009年Google IO中的< ...
- 【转】Android ListView加载不同的item布局
原创教程,转载请保留出处:http://www.eoeandroid.com/thread-72369-1-1.html 最近有需求需要在listView中载入不同的listItem布局,开始 ...
- ListView点击Item展开隐藏项(单项展开、多项展开、复杂布局时的展开处理)
手机屏幕毕竟有限,当我们要显示较多数据时便不得不舍去一些次要信息.将主要信息优先显示,也使显示效果更加简洁美观.遇到类似的需求,我们使用最多的就是 ListView ,而假设每次点击一个 Item 都 ...
- RN中listView的每个item等高
今天写ListView的每个Item的布局的时候发现,当文字太长时被截掉了不能完全显示,检查了很久发现没有设置固定高度都是可伸缩的为什么没有伸缩呢.看了很久才发现每个item是等高的,于是仔细检查才看 ...
- Android ListView实现不同item的方法和原理分析
ListView实现不同item的方法和原理分析 一问题抛出Listview是android里面的重要组件,用来显示一个竖向列表,这个没有什么问题:但是有个时候列表里面的item不是一样的,如下图,列 ...
- 它们的定义ListView,实现Item除去滑动和滑出菜单效果
这个程序是基于变化从网上开源项目,详情货源忘记.懒得去搜索,.假设有不合适的地方.请与我联系作者.我会及时回复和处理! 序中主要包括两个ListView,一个是实现側滑删除.一个是側滑出菜单,代码中的 ...
- Android处理ListView中的Item中的Button按钮不能点击的问题
问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...
- Android动态加载ListView中的Item
我这周上网看到动态增加listview的每一项item的布局,今天抽空自己写了一个,方便自己日后使用,这个效果还是很不错的,用到了Adapter的notifyDataSetChanged()方法,当点 ...
随机推荐
- cloudfoundry service broker 制作
实验室这边需要制作service broker.从今天开始将精力投入其中.
- Mysql外键的变种 三种关系
一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出两张表之间的关系 分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以 ...
- DevExpress的GridControl拖拽DraopDown后计算HitInfo的RowHandle错误
最近在使用GridControl的拖拽功能时候遇到了一个问题:当GridControl触发DropDrop事件时,计算对应的RowHandle错误.当把鼠标拖拽到GridView一个单元格的靠上面的部 ...
- MATLAB 2018a 下载安装
参考链接:https://www.youtube.com/watch?v=BJavEE9KIlY
- 将我们的parser转换成Monad
还记得我们上一篇delegate类型的parser吗 ,在开始本篇之前,强烈建议你复习一下这个parser定义 public delegate Maybe<Tuple<T,string& ...
- 个人网站html5雪花飘落代码JS特效下载
如何给自己的网站/页面添加雪花代码.特效呢?有的网站配合自己的主题模板添加雪花飘落效果挺好看的.特别是与冬天季节相关的主题,很多的博客空间都加了雪花的效果.在网上搜索了几种雪花效果,做了简单的修改,在 ...
- javascript中五句话
1.弹出框 ,小括号中就是弹出的内容 alert("我是一个弹出框"); 2.控制台输出 小括号里面就是 控制台输出的东西 console.log("我是控制台输出的 ...
- 如何在Hexo中实现自适应响应式相册功能
用最清晰简洁的方法整合一个响应式相册 效果 技术选型 由于我选用的主题使用了fancyBox作为图片弹出展示的框架,查看后表示很不错,能满足需要 http://fancyapps.com/fancyb ...
- Dependency Injection in ASP.NET MVC
原文引自http://www.dotnetcurry.com/ShowArticle.aspx?ID=786 1.传统三层结构,相邻两层之间交互: 2.如果使用EntityFramework则View ...
- 【Oracle】数据库热备
1. 创建脚本 注:脚本第三行中的DB_NAME,需要改为自己的数据库名(show parameter name;): oracle用户下新建目录:/home/oracle/DB_NAME/hot_b ...