Android ListView 条目多样式展示实例详解
作者:青春无悔-新歌 发布时间:2022-10-22 06:18:41
标签:Android,ListView
ListView的多种样式条目展示
这里给大家介绍一下简单的ListView的多种样式展示
在布局文件中和往常一样写一个ListViwe的布局
<ListView
android:id="@+id/main_listview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
其他的这里就不多说了,直接介绍适配器里的操作
package com.bwei.test.BaseAdapter;
import java.util.List;
import com.bwei.test.R;
import com.bwei.test.bean.News;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import android.R.color;
import android.R.layout;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MyBaseAdapter extends BaseAdapter {
private Context context;
private List<News> newlist;
//ImageLoader
private DisplayImageOptions Options;
//定义样式常量,注意常量值要从0开始
private static final int TYPE_LISTVIEW_NORMAL = 0;
private static final int TYPE_LISTVIEW_NO_PIC = 1;
public MyBaseAdapter(Context context, List<News> newlist,
DisplayImageOptions options) {
super();
this.context = context;
this.newlist = newlist;
Options = options;
}
@Override
public int getCount() {
//ListView的总共条数
return newlist.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
/*
* 注意我们要填充的布局个数和我们要展示的样式个数一样
* 最好一个样式一个填充布局
*
* */
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
// 获取当前条目的类型
int itemViewType = getItemViewType(position);
ViewHolder viewHolder;
if (convertView==null) {
viewHolder=new ViewHolder();
switch (itemViewType) {
case TYPE_LISTVIEW_NORMAL:
convertView=LayoutInflater.from(context).inflate(R.layout.title_pic, null);
viewHolder.imageView=(ImageView) convertView.findViewById(R.id.imageView1);
ImageLoader.getInstance().displayImage(newlist.get(position).getImgs(), viewHolder.imageView,Options);
convertView.setTag(viewHolder);
break;
case TYPE_LISTVIEW_NO_PIC:
convertView=LayoutInflater.from(context).inflate(R.layout.title, null);
convertView.setTag(viewHolder);
break;
default:
break;
}
viewHolder.textcopyright=(TextView) convertView.findViewById(R.id.copyright);
viewHolder.texttime=(TextView) convertView.findViewById(R.id.data);
viewHolder.texttitle=(TextView) convertView.findViewById(R.id.title);
viewHolder.texttitle.setText(
newlist.get(position).getTitle());
viewHolder.texttime.setText(
newlist.get(position).getPubDate());
viewHolder.textcopyright.setText(
newlist.get(position).getCopyright());
} else {
viewHolder=(ViewHolder) convertView.getTag();
switch (itemViewType) {
case TYPE_LISTVIEW_NORMAL:
ImageLoader.getInstance().displayImage(
newlist.get(position).getImgs(),
viewHolder.imageView,Options);
break;
case TYPE_LISTVIEW_NO_PIC:
break;
default:
break;
}
viewHolder.texttitle.setText(
newlist.get(position).getTitle());
viewHolder.texttime.setText(
newlist.get(position).getPubDate());
viewHolder.textcopyright.setText(
newlist.get(position).getCopyright());
}
return convertView;
}
/**
* 获取具体的某个索引值下的条目的条目类型
*/
@Override
public int getItemViewType(int position) {
// TODO Auto-generated method stub
//判断以什么结束的属性
if ( newlist.get(position).getImgs().endsWith(".jpg")) {
return TYPE_LISTVIEW_NORMAL;
}
return TYPE_LISTVIEW_NO_PIC;
}
/**
* 获取listView条目类别的个数(样式)
*/
@Override
public int getViewTypeCount() {
// TODO Auto-generated method stub
return 2;
}
//容器
class ViewHolder{
ImageView imageView;
TextView texttitle,textcopyright,texttime;
}
}
以上是多条目样式展示的一种
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/qq_34476727/article/details/51670763
0
投稿
猜你喜欢
- 概述ZXing 是一个开源 Java 类库用于解析多种格式的 1D/2D 条形码。目标是能够对QR编码、Data Matrix、UPC的1D
- Sharding-Proxy是一个分布式数据库中间件,定位为透明化的数据库代理端。作为开发人员可以完全把它当成数据库,而它具体的分片规则在S
- 前言:当工具类对多个模型类进行排序,比较等操作的时候,需要书写大量重复代码,因为懒人总要想怎么省事的,所以考虑使用泛型这个玩意简化代码案例:
- 通常,在这个页面中会用到很多控件,控件会用到很多的资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等
- 最近在开发的过程中,遇到了一个需要截取屏幕保存为图片的需求,具体为截取webview的视图保存图片。方法1:首先想到的思路是利用SDK提供的
- 背景Arthas是阿里巴巴开源的应用诊断利器,提供了profiler命令,可以生成热点火焰图。通过采样录制调用链路来做性能分析,极大提升了线
- 本文实例为大家分享了Android日历控件的使用方法,供大家参考,具体内容如下MainActivity.java代码:package sis
- 项目中遇到C#调用C++算法库的情况,C++内部运算结果返回矩形坐标数组(事先长度未知且不可预计),下面方法适用于访问C++内部分配的任何结
- 本文实例为大家分享了Android仿今日头条订阅频道,供大家参考,具体内容如下源码:Android实现今日头条订阅频道布局文件<?xm
- 有时候我们需要实现这样的场景,类似进入开发者模式,即多次点击后执行操作。首先我们先看一个方法:System提供的一个静态方法arraycop
- android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 Translat
- 查看apiDemos,找到View/Animation/shake找到对应的动画代码,直接拷贝过来当导入一个项目的时候,报R文件不存在,很多
- 截取字符串最后一位1.用substring()来截取理论上它是按照字符串.substring(字符串.lastIndexOf("\
- 本文实例为大家分享了C#实现套接字发送接收数据的具体代码,供大家参考,具体内容如下服务端namespace TestServer{ &nbs
- SpringBoot @ConditionalOnBean实现原理在SpringBoot1.5.X时判断条件是OR,SpringBoot2.
- 在上一篇文章中完成了 《Maven镜像地址大全 》,后来又花了时间又去收集并整理了关于 maven 远程仓库地址,并整理于此,关于 Mave
- 运算符运算符,顾名思义就是用来执行数学运算的。在Java中运算符可以分为:算术运算符、关系运算符、逻辑运算符、位运算符、移位运算符、条件运算
- 基础配置新建module:cloudalibaba-config-nacos-client3377pom文件版本号已经由父工程控制<?
- 过去在Android上网络通信都是使用的Xutils 因为用它可以顺道处理了图片和网络这两个方面,后来发觉Xutils里面使用的是HttpC
- 最近项目中使用springboot+jwt实现登录权限控制,所以在这里记录一下防止以后忘记,毕竟好记性不如烂笔头嘛~。首先我们需要导入使用到