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
  • asp之家 软件编程 m.aspxhome.com