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()方法,当点 ...
随机推荐
- 乐字节-Java8核心特性实战-接口默认方法
JAVA8已经发布很久,是自java5(2004年发布)之后Oracle发布的最重要的一个版本.其中包括语言.编译器.库.工具和JVM等诸多方面的新特性,对于国内外互联网公司来说,Java8是以后技术 ...
- BZOJ 1116 并查集
思路: 如果 每个联通块 边数>=点数 就OK 用并查集搞 //By SiriusRen #include <cstdio> #include <cstring> #in ...
- Android App退出检测
app的退出检测是很难的,但是获取app“要退出”的状态就容易多了,退出的瞬间并不是真的退出了,ActivityManager要销毁activity,也需要一些时间和资源的. 先见下面的运行效果: ...
- (转载)tnsping不是内部或外部命令
手动添加 D:\app\Administrator\product\11.2.0\client_1\bin 到系统环境变量 path里面
- WinRAR 5.60 无广告正式版
首先明确WinRAR唯一的官网是这个 https://www.rarlab.com/ 其余的都不要相信. 现在的问题是:不要脸的中国代理强行捆绑广告:即使你花钱注册同样要面对弹窗广告!这就不可接受了! ...
- Python:Matplotlib 画曲线和柱状图(Code)
原文链接:http://blog.csdn.net/ikerpeng/article/details/20523679 参考资料:http://matplotlib.org/gallery.html ...
- 【seo】title / robots / description / canonical
1.title title,就是浏览器上显示的那些内容,不仅用户能看到,也能被搜索引擎检索到(搜索引擎在抓取网页时,最先读取的就是网页标题,所以title是否正确设置极其重要. 1)title一般不超 ...
- gulp打包压缩代码以及图片
1.首先全局安装gulp 全局安装就不做介绍了 初学gulp,终于把常用的配置,api,语法弄明白了! gulp插件地址:http://gulpjs.com/plugins gulp官方网址:http ...
- MongoDB_pymongo
python使用pymongo访问MongoDB的基本操作 安装pymongo: pip install pymongo from pymongo import MongoClient import ...
- (4.33)sql server2014内存数据库(内存中OLTP(In-Memory OLTP))
查看文章:https://blog.51cto.com/ultrasql/1626514