Android ListView 条目多样式展示实例详解
作者:青春无悔-新歌 时间:2022-10-22 06:18:41
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
标签:Android,ListView
0
投稿
猜你喜欢
spring BeanProcessor接口详解
2021-12-26 07:32:17
Java标识接口的使用方法
2021-12-24 02:54:14
SpringBoot Redis配置Fastjson进行序列化和反序列化实现
2023-10-09 04:45:57
java获取ip地址示例
2021-12-25 07:04:22
Java使用 try-with-resources 实现自动关闭资源的方法
2022-01-09 06:54:46
SpringBoot-JPA删除不成功,只执行了查询语句问题
2022-09-10 04:13:55
Java如何获取word文档的条目化内容
2023-10-27 15:04:32
Flink支持哪些数据类型?
2023-01-15 06:55:43
Java String类的常用方法汇总
2022-04-10 11:58:24
详解Struts2中json 相互引用死循环解决办法
2022-09-08 04:04:46
Android进度条ProgressBar的实现代码
2023-01-30 07:12:22
unity 实现摄像机绕某点旋转一周
2021-06-11 16:48:57
java WebSocket实现聊天消息推送功能
2023-09-12 00:41:55
基于mvc5+ef6+Bootstrap框架实现身份验证和权限管理
2023-07-08 09:25:22
Java将Word文件转为OFD文件
2023-05-24 01:46:35
深入理解C#中常见的委托
2022-01-15 07:53:05
Java并发编程之详解CyclicBarrier线程同步
2023-08-01 14:08:47
C#邮件定时群发工具Atilia用法实例
2022-06-13 11:50:24
Android中关于递归和二分法的算法实例代码
2023-07-05 04:19:04
C# httpwebrequest访问HTTPS错误处理方法
2021-10-31 02:40:49