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()方法,当点 ...
随机推荐
- Linux下JDK Tomcat MySQL基本环境搭建
1. 安装JDK wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1 ...
- 深入了解Token认证的来龙去脉
Token 是在服务端产生的,如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端.前端可以在每次请求的时候带上 Token 证明自己的合法地位. 不久 ...
- BZOJ 1537 cdq分治
思路: 我只是想写一下cdq-- 二维偏序 一维排序 一维cdq分治 (我忘了归并排序怎么写了,,,) 写了个sort- 复杂度是O(nlog^2n) //By SiriusRen #include ...
- configparser (配置文件) 模块
主要内容来自景女神博客 内涵:该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值). 常见文档格式: [DEFAULT] ...
- ridis 集群配置
./redis-cli -h 192.168.106.128 -p 6379 redis 1.ping 2.set str1 abc get str1 3. mkdir ../redis-c ...
- P1284 三角形牧场
题目描述 和所有人一样,奶牛喜欢变化.它们正在设想新造型的牧场.奶牛建筑师Hei想建造围有漂亮白色栅栏的三角形牧场.她拥有N(3≤N≤40)块木板,每块的长度Li(1≤Li≤40)都是整数,她想用所有 ...
- wordpress插件推荐
以下插件可以全部到后台插件中心安装,只需使用关键词搜索即可 安全插件:Wordfence Security 后台增加一道密码:Stealth Login Page 隐藏后台登录地址:WPS-Hide- ...
- H5 微信公众号 监听返回事件
/*-----监听返回事件-----*/ function pushHistory(returnUrl,currentUrl,currentTitle) { window.addEventListen ...
- ERROR 1062 (23000): Duplicate entry for key 'PRIMARY'
ALTER TABLE table1 ADD COLUMN column1 VARCHAR(400) DEFAULT NULL; ERROR 1062 (23000): Duplicate entry ...
- 编译OpenCV遇到Qmake问题
1.Ubuntu安装OpenCv,出现:qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or ...