广告
返回顶部
首页 > 资讯 > 移动开发 >Android listview多视图嵌套多视图
  • 500
分享到

Android listview多视图嵌套多视图

视图listview嵌套Android 2022-06-06 09:06:10 500人浏览 泡泡鱼
摘要

首先给大家展示下效果图: public class HomeEduMoreAdapter extends BaseAdapter { private final Strin

首先给大家展示下效果图:


public class HomeEduMoreAdapter extends BaseAdapter {
private final String TAG = "HomeEduMoreAdapter";
private static final int TYPE_COMMON = ;
private static final int TYPE_BL = ;
private static final int TYPE_NONE = ;
private static final int TYPE_THREE = ;
private static final int TYPE_QUESTioN = ;
private int TYPE_COUNT = ;
private LayoutInflater inflater;
private List<HomeEdus> list;
private Context context;
private DisplayImageOptions options;
private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener();
public HomeEduMoreAdapter(Context context, List<HomeEdus> objects) {
this.context = context;
// groupUserDao = new GroupUserDao(context);
inflater = LayoutInflater.from(context);
list = objects;
options = new DisplayImageOptions.Builder().cacheInMemory(true)
.imageScaleType(ImageScaleType.IN_SAMPLE_INT)
.bitmapConfig(Bitmap.Config.RGB_).cacheOnDisk(true)
.showImageOnLoading(R.drawable.icon_default)// 设置图片在下载期间显示的图片
.showImageForEmptyUri(R.drawable.icon_default)// 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.icon_default)// 设置图片加载/解码过程中错误时候显示的图片
.considerExifParams(true).build();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public int getViewTypeCount() {
// TODO Auto-generated method stub
return TYPE_COUNT;
}
@Override
public HomeEdus getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int postion) {
// TODO Auto-generated method stub
return postion;
}
@Override
public int getItemViewType(int position) {
// TODO Auto-generated method stub
HomeEdus edus = getItem(position);
String type = edus.getType();// 菜单类型
int result = TYPE_COMMON;
switch (type) {
case "hx":
result = TYPE_COMMON;
break;
case "wd":
if (edus.getPic() == null || edus.getPic().equals("")) {
result = TYPE_QUESTION;
}else {
result = TYPE_COMMON;
}
break;
case "jt":
result = TYPE_COMMON;
break;
case "bl":
result = TYPE_BL;
break;
default:
String jx = edus.getType();// 精选内容类型
switch (jx) {
default:
Integer imgNum = Integer.parseInt(edus.getImgNum());
if (imgNum != null && imgNum > && imgNum < ) {
result = TYPE_COMMON;
} else if (imgNum != null && imgNum >= ) {
result = TYPE_THREE;
} else {
result = TYPE_NONE;
}
break;
}
break;
}
return result;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final HomeEdus model = getItem(position);
int type = getItemViewType(position);
final ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
WindowManager manager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
int width = manager.getDefaultDisplay().getWidth();
int height = manager.getDefaultDisplay().getWidth() / ;
switch (type) {
case TYPE_COMMON:
convertView = inflater.inflate(R.layout.item_home_edus, null);
holder.tv_content = (QSTextView) convertView
.findViewById(R.id.tv_content);
holder.tv_content.setTextColor(Color.GRAY);
holder.tv_title = (QSTextView) convertView
.findViewById(R.id.tv_title);
holder.tv_name = (TextView) convertView
.findViewById(R.id.tv_name);
// holder.img_head = (CircleImageView) convertView
// .findViewById(R.id.img_head);
holder.img_content = (ImageView) convertView
.findViewById(R.id.img_content);
holder.tv_read = (TextView) convertView
.findViewById(R.id.tv_read);
holder.tv_comment = (TextView) convertView
.findViewById(R.id.tv_comment);
holder.tv_thumbupNum = (TextView) convertView
.findViewById(R.id.tv_thumbupNum);
break;
case TYPE_QUESTION:
convertView = inflater.inflate(R.layout.item_home_question, null);
holder.tv_content = (QSTextView) convertView
.findViewById(R.id.tv_content);
holder.tv_content.setTextColor(Color.GRAY);
holder.tv_title = (QSTextView) convertView
.findViewById(R.id.tv_title);
holder.tv_name = (TextView) convertView
.findViewById(R.id.tv_name);
holder.tv_read = (TextView) convertView
.findViewById(R.id.tv_read);
holder.tv_comment = (TextView) convertView
.findViewById(R.id.tv_comment);
holder.tv_thumbupNum = (TextView) convertView
.findViewById(R.id.tv_thumbupNum);
break;
case TYPE_BL:
case TYPE_NONE:
convertView = inflater.inflate(R.layout.item_home_case, null);
holder.tv_content = (QSTextView) convertView
.findViewById(R.id.tv_content);
holder.tv_content.setTextColor(Color.GRAY);
holder.tv_title = (QSTextView) convertView
.findViewById(R.id.tv_title);
holder.tv_name = (TextView) convertView
.findViewById(R.id.tv_name);
holder.img_content = (ImageView) convertView
.findViewById(R.id.img_content);
LayoutParams para = holder.img_content.getLayoutParams();
para.height = height;
para.width = width;
holder.img_content.setLayoutParams(para);
holder.tv_read = (TextView) convertView
.findViewById(R.id.tv_read);
holder.tv_comment = (TextView) convertView
.findViewById(R.id.tv_comment);
holder.tv_thumbupNum = (TextView) convertView
.findViewById(R.id.tv_thumbupNum);
break;
case TYPE_THREE:
convertView = inflater.inflate(R.layout.item_home_three, null);
holder.tv_content = (QSTextView) convertView
.findViewById(R.id.tv_content);
holder.tv_content.setTextColor(Color.GRAY);
holder.tv_title = (QSTextView) convertView
.findViewById(R.id.tv_title);
holder.tv_name = (TextView) convertView
.findViewById(R.id.tv_name);
holder.img_content = (ImageView) convertView
.findViewById(R.id.img_content);
holder.img_content = (ImageView) convertView
.findViewById(R.id.img_content);
holder.img_content = (ImageView) convertView
.findViewById(R.id.img_content);
int w = width / ;
LayoutParams p = holder.img_content.getLayoutParams();
p.height = (int)(w*.f);
p.width = w;
holder.img_content.setLayoutParams(p);
p = holder.img_content.getLayoutParams();
p.height = (int)(w*.f);
p.width = w;
holder.img_content.setLayoutParams(p);
p = holder.img_content.getLayoutParams();
p.height = (int)(w*.f);
p.width = w;
holder.img_content.setLayoutParams(p);
holder.tv_read = (TextView) convertView
.findViewById(R.id.tv_read);
holder.tv_comment = (TextView) convertView
.findViewById(R.id.tv_comment);
holder.tv_thumbupNum = (TextView) convertView
.findViewById(R.id.tv_thumbupNum);
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
switch (type) {
case TYPE_COMMON:
case TYPE_BL:
setCommon(holder, model);
break;
case TYPE_QUESTION:
setQuestion(holder,model);
break;
case TYPE_NONE:
setCase(holder, model);
break;
case TYPE_THREE:
setThree(holder, model);
break;
}
return convertView;
}
private void setCommon(ViewHolder holder, HomeEdus entity) {
String content = entity.getDesc();
int clength = content.length();
if (clength > ) {
content = content.substring(, ) + "...";
}
holder.tv_content.setMText(content);
String title = entity.getTitle();
int tlength = title.length();
if (tlength > ) {
title = title.substring(, ) + "...";
}
holder.tv_title.setMText(title);
// int height = holder.tv_title.getHeight();
holder.tv_thumbupNum.setText(entity.getThumbupNum());
holder.tv_read.setText(entity.getReadNum());
holder.tv_comment.setText(entity.getCommentNum());
holder.tv_name.setText(entity.getSourceName());
// if (entity.getHead_img() != null && !entity.getHead_img().equals(""))
// {
// ImageLoader.getInstance().displayImage(entity.getHead_img().trim(),
// holder.img_head, options, animateFirstListener);
// } else {
// holder.img_head.setImageResource(R.drawable.pic_head_none_login);
// }
if (entity.getPic() != null
&& !entity.getPic().equals("")) {
holder.img_content.setBackground(null);
ImageLoader.getInstance().displayImage(
entity.getPic().trim(), holder.img_content,
options, animateFirstListener);
}
}
private void setCase(ViewHolder holder, HomeEdus entity) {
String content = entity.getDesc();
int clength = content.length();
if (clength > ) {
content = content.substring(, ) + "...";
}
holder.tv_content.setMText(content);
String title = entity.getTitle();
int tlength = title.length();
if (tlength > ) {
title = title.substring(, ) + "...";
}
holder.tv_title.setMText(title);
// int height = holder.tv_title.getHeight();
holder.tv_thumbupNum.setText(entity.getThumbupNum());
holder.tv_read.setText(entity.getReadNum());
holder.tv_comment.setText(entity.getCommentNum());
holder.tv_name.setText(entity.getSourceName());
if (entity.getPic() != null
&& !entity.getPic().equals("")) {
holder.img_content.setBackground(null);
ImageLoader.getInstance().displayImage(
entity.getPic().trim(), holder.img_content,
options, animateFirstListener);
}
}
private void setThree(ViewHolder holder, HomeEdus entity) {
String content = entity.getDesc();
int clength = content.length();
if (clength > ) {
content = content.substring(, ) + "...";
}
holder.tv_content.setMText(content);
String title = entity.getTitle();
int tlength = title.length();
if (tlength > ) {
title = title.substring(, ) + "...";
}
holder.tv_title.setMText(title);
// int height = holder.tv_title.getHeight();
holder.tv_thumbupNum.setText(entity.getThumbupNum());
holder.tv_read.setText(entity.getReadNum());
holder.tv_comment.setText(entity.getCommentNum());
holder.tv_name.setText(entity.getSourceName());
holder.img_content.setImageResource(R.drawable.icon_default);
holder.img_content.setImageResource(R.drawable.icon_default);
holder.img_content.setImageResource(R.drawable.icon_default);
if (entity.getPic() != null
&& !entity.getPic().equals("")) {
holder.img_content.setBackground(null);
ImageLoader.getInstance().displayImage(
entity.getPic().trim(), holder.img_content,
options, animateFirstListener);
}
if (entity.getPic() != null
&& !entity.getPic().equals("")) {
holder.img_content.setBackground(null);
ImageLoader.getInstance().displayImage(
entity.getPic().trim(), holder.img_content,
options, animateFirstListener);
}
if (entity.getPic() != null
&& !entity.getPic().equals("")) {
holder.img_content.setBackground(null);
ImageLoader.getInstance().displayImage(
entity.getPic().trim(), holder.img_content,
options, animateFirstListener);
}
}
private void setQuestion(ViewHolder holder, HomeEdus entity) {
String content = entity.getDesc();
int clength = content.length();
if (clength > ) {
content = content.substring(, ) + "...";
}
holder.tv_content.setMText(content);
String title = entity.getTitle();
int tlength = title.length();
if (tlength > ) {
title = title.substring(, ) + "...";
}
holder.tv_title.setMText(title);
// int height = holder.tv_title.getHeight();
holder.tv_thumbupNum.setText(entity.getThumbupNum());
holder.tv_read.setText(entity.getReadNum());
holder.tv_comment.setText(entity.getCommentNum());
holder.tv_name.setText(entity.getSourceName());
}
public void setList(List<HomeEdus> list) {
this.list.clear();
this.list.addAll(list);
notifyDataSetChanged();
}
static class ViewHolder {
public QSTextView tv_title;
public QSTextView tv_content;
public ImageView img_content;
public TextView tv_name;
public TextView tv_read;
public TextView tv_comment;
public TextView tv_thumbupNum;
public ImageView img_content;
public ImageView img_content;
public ImageView img_content;
}
private static class AnimateFirstDisplayListener extends
SimpleImageLoadingListener {
static final List<String> displayedImages = Collections
.synchronizedList(new LinkedList<String>());
@Override
public void onLoadinGComplete(String imageUri, View view,
Bitmap loadedImage) {
if (loadedImage != null) {
ImageView imageView = (ImageView) view;
boolean firstDisplay = !displayedImages.contains(imageUri);
if (firstDisplay) {
FadeInBitmapDisplayer.animate(imageView, );
displayedImages.add(imageUri);
}
}
}
}
}
您可能感兴趣的文章:Android中实现淘宝购物车RecyclerView或LIstView的嵌套选择的逻辑ScrollView嵌套ListView滑动冲突的解决方法Android ListView的item中嵌套ScrollView的解决办法关于Android中ListView嵌套GridView的问题Android之ScrollView嵌套ListView和GridView冲突的解决方法ListView嵌套GridView使用详解及注意事项探讨:如何在ScrollView中嵌套ListViewAndroid笔记之:在ScrollView中嵌套ListView的方法Android滑动冲突的完美解决Android中listview嵌套scrollveiw冲突的解决方法


--结束END--

本文标题: Android listview多视图嵌套多视图

本文链接: https://www.lsjlt.com/news/25769.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android listview多视图嵌套多视图
    首先给大家展示下效果图: public class HomeEduMoreAdapter extends BaseAdapter { private final Strin...
    99+
    2022-06-06
    视图 listview 嵌套 Android
  • Android如何实现界面内嵌多种卡片视图
    小编给大家分享一下Android如何实现界面内嵌多种卡片视图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Android实现界面内嵌多种卡片视图,具体内容如下效果...
    99+
    2023-05-30
    android
  • Android Studio 中列表视图(ListView)的应用
    目录 引言 一、列表视图的作用 二、列表视图的工作原理和工作方式 三、准备数据源 四、适配器的使用 五、布局文件中的列表视图 六、自定义列表项布局 七、列表项点击事件处理 八、列表的优化 十、示例代码和演示 十一、总结和展望 参考资料: ...
    99+
    2023-09-11
    android 学习
  • 嵌套查询及视图的创建和使用
    实验内容与完成情况: 一、实验目的 本实验的目的使学生进一步掌握MySQL的使用方法,加深对SQL语言的嵌套查询和视图使用的理解。 二、实验内容 1、在SQL Server Management Studio中使用嵌套查询完成如下查询要求:...
    99+
    2023-10-25
    数据库 mysql
  • android提取视频多张图片和视频信息实例
    话说2016年的直播比较火,2017年短视频又火了。但对于开发者来说隐藏在这背后的技术才是我们所关心的,毕竟我们是靠技术吃饭的。现在在安卓中多媒体服务比较强大,而与视频有关的视频基本处理技术有必要学习一下。我前段时间也在做有关视频的一些需求...
    99+
    2023-05-31
    android 提取 视频
  • angularJs模块ui-router之状态嵌套和视图嵌套的示例分析
    这篇文章主要介绍了angularJs模块ui-router之状态嵌套和视图嵌套的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。状态嵌...
    99+
    2022-10-19
  • vue 路由视图 router-view嵌套跳转的实现
    目录1、修改app.vue页面2、创建登录页面(/views/login/login.vue)2.1、在router/index.js中添加登录页面路由3、创建主页面(/compon...
    99+
    2022-11-12
  • oracle如何创建多表视图
    在Oracle中,可以使用`CREATE VIEW`语句来创建多表视图。多表视图是基于多个表的查询结果构建的虚拟表,可以简化复杂的查...
    99+
    2023-08-08
    oracle
  • Vant实现上传多个图片或视频,更改视频预览图
    目录Vant上传多个图片或视频,更改视频预览图需求最终成果过程Vant上传压缩图片;多图片压缩上传Vant上传多个图片或视频,更改视频预览图 需求 vant上传多个视频或图片图片和视...
    99+
    2022-11-13
    Vant上传多个图片 Vant上传多个视频 Vant更改视频预览图
  • MySQL在多表上创建视图方法
    MySQL中,在两个或者以上的基本表上创建视图 在student表和stu_info表上,创建stu_class视图,查询出s_id号、姓名和班级 首先,创建stu_info表,并向表中插入数据 查看...
    99+
    2022-10-18
  • KITTI数据集可视化(一):点云多种视图的可视化实现
    如有错误,恳请指出。 在本地上,可以安装一些软件,比如:Meshlab,CloudCompare等3D查看工具来对点云进行可视化。而这篇博客是将介绍一些代码工具将KITTI数据集进行可视化操作,包...
    99+
    2023-09-17
    自动驾驶 python 人工智能 点云可视化 KITTI数据集
  • laravel多视图共享数据实例代码
    目录前言在视图间共享数据视图Composer添加 Composer 到多个视图总结前言 在做项目中,网站前台或者后台有些数据需要在多个视图页面使用,例如用户基本信息数据,菜单展示数据...
    99+
    2022-11-12
  • Matlab实现多子图同步调整视角
    目录DEMO1同时改变坐标范围和视角DEMO2只同时改变视角DEMO3更多子图工具函数完整代码要解决的问题:我希望在旋转其中一个AXES的视角的同时,其他AXES跟着以相同视角旋转。...
    99+
    2022-11-13
  • Swift实现表格视图单元格多选
    本文实例为大家分享了Swift实现表格视图单元格多选的具体代码,供大家参考,具体内容如下 效果 前言 这段时间比较忙,没太多的时间写博客,前段时间写了一些关于表格视图单选的文章,想...
    99+
    2022-11-13
  • Android Listview中显示不同的视图布局详解及实例代码
    Android Listview中显示不同的视图布局 1. 使用场景 在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertVi...
    99+
    2022-06-06
    布局 视图 listview Android
  • Django展示可视化图表的多种方式
    目录1. 前言 2. Echarts 3. Pyecharts 3-1  安装依赖3-2  拷贝 pyecharts 的模板文件到项...
    99+
    2022-11-12
  • iOS实现多个垂直滑动条并列视图
    本文实例为大家分享了iOS实现多个垂直滑动条并列视图的具体代码,供大家参考,具体内容如下 上一篇文章我们实现了一个垂直滑动条的类 (VerticalSlider),用来满足垂直滑动的...
    99+
    2022-11-13
  • Matlab如何实现多子图同步调整视角
    本篇内容主要讲解“Matlab如何实现多子图同步调整视角”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Matlab如何实现多子图同步调整视角”吧!要解决的问题:我希望在旋转其中一个AXES的视角...
    99+
    2023-06-29
  • Python如何实现合并多张图片成视频
    本篇内容介绍了“Python如何实现合并多张图片成视频”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!合并多张图片到视频的方法说明除了使用 O...
    99+
    2023-07-05
  • Android实现便于批量操作可多选的图片ListView实例
    本文实例讲述了Android实现便于批量操作可多选的图片ListView。分享给大家供大家参考,具体如下: 之前项目需要实现一个可多选的图片列表,用户选中一到多张图片后,批量上...
    99+
    2022-06-06
    listview Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作