//---------------主要是适配器里面-------------------------------------

package com.bwie.test.adapter;

import java.net.ContentHandler;
import java.util.List;

import com.bwie.test.R;
import com.bwie.test.bean.News;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyAdapter extends BaseAdapter{
    private List<News> news;
    private Context context;
    
     //定义样式常量,注意常量值要从0开始
    private static final int TYPE_LISTVIEW_NORMAL = 0;//有图片
    private static final int TYPE_LISTVIEW_NO_PIC = 1;//无图片

    

    public MyAdapter(List<News> news, Context context) {
        super();
        this.news = news;
        this.context = context;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return news.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return news.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }
    /**
     * 获取listView条目类别的个数(样式)
     */
    @Override
    public int getViewTypeCount() {
        
        return 2;
    }

    
    /**
     * 获取具体的某个索引值下的条目的条目类型
     */
    @Override
    public int getItemViewType(int position) {
        // TODO Auto-generated method stub
        //判断以什么结束的属性
        if ( news.get(position).getIMAGEURL().endsWith(".jpg")) {
            return TYPE_LISTVIEW_NORMAL;
        }

        return TYPE_LISTVIEW_NO_PIC;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        
        // 获取当前条目的类型
        int itemViewType = getItemViewType(position);

        ViewHolder holder;
        News newss=news.get(position);
        if (convertView==null) {            
            holder=new ViewHolder();            
            switch (itemViewType) {
            case TYPE_LISTVIEW_NORMAL:
                convertView=View.inflate(context, R.layout.list_item1, null);
                holder.iv=(ImageView) convertView.findViewById(R.id.iv);
                convertView.setTag(holder);
                break;
            case TYPE_LISTVIEW_NO_PIC:
                convertView=View.inflate(context, R.layout.list_item, null);
                convertView.setTag(holder);
                break;
            default:
                break;
            }
            holder.TITLE=(TextView) convertView.findViewById(R.id.tv_TITLE);
            holder.SUBTITLE=(TextView) convertView.findViewById(R.id.tv_SUBTITLE);
            holder.FROMNAME=(TextView) convertView.findViewById(R.id.tv_FROMNAME);
            holder.SHOWTIME=(TextView) convertView.findViewById(R.id.tv_SHOWTIME);
            
            
        }else{
            holder=(ViewHolder) convertView.getTag();
            switch (itemViewType) {
            case TYPE_LISTVIEW_NORMAL:
                ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(context));
                DisplayImageOptions options=new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisk(true).build();
                ImageLoader.getInstance().displayImage(newss.getIMAGEURL(), holder.iv, options);
                break;
                case TYPE_LISTVIEW_NO_PIC:
                    
                    break;

            default:
                break;
            }
        }
        
        holder.TITLE.setText(newss.getTITLE());
        holder.SUBTITLE.setText(newss.getSUBTITLE());
        holder.FROMNAME.setText(newss.getFROMNAME());
        holder.SHOWTIME.setText(newss.getSHOWTIME());
        
        
        return convertView;
    }
    static class ViewHolder{
        public TextView TITLE;
        public TextView SUBTITLE;
        public TextView FROMNAME;
        public TextView SHOWTIME;
        public ImageView iv;
    }

}

//--------------第一个Listview条目没有图片------------------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
   
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:id="@+id/tv_TITLE"/>
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tv_SUBTITLE"/>
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_FROMNAME"/>
        <TextView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_SHOWTIME"
            android:layout_marginLeft="20dp"/>
    </LinearLayout>
   
</LinearLayout>

//-----------------有图片的Listview布局----------------------------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <ImageView android:layout_width="80dp"
            android:layout_height="80dp"
            android:scaleType="fitXY"
            android:id="@+id/iv"/>
        <LinearLayout android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:id="@+id/tv_TITLE"/>
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tv_SUBTITLE"/>
    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_FROMNAME"/>
        <TextView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_SHOWTIME"
            android:layout_marginLeft="20dp"/>
    </LinearLayout>
        </LinearLayout>
    </LinearLayout>
    
   
</LinearLayout>

Listview多条目展示的更多相关文章

  1. Windows程序==>>使用ListView控件展示数据

    使用ListView控件展示数据 01.ImageList控件 1.了解了解         属性 说明 Images 储存在图像列表中的所有图像 ImageSize 图像列表中图像的大小 Trans ...

  2. ListView的条目点击焦点的问题

    由于ListView条目里有ImageButton,导致抢占了条目点击事件,所以在item的跟布局中加入 android:descendantFocusability="blocksDesc ...

  3. listview去掉条目间的分割线

    未去掉前: 去掉后: java代码可以这么写: 1          listView.setDivider(null);//去掉条目间的分割线 PS:ListView的几个常用操作 listView ...

  4. listview设置条目点击的时候不变色(让状态选择器不起作用)

    未设置前的效果如下图: 很明显,“酷狗音乐”那个条目被点击的时候,条目背景变为蓝色,怎么去掉这个颜色呢? java代码可以这么写: listView.setSelector(new ColorDraw ...

  5. React-Native基础_5.列表视图ListView 网络数据展示

    //获取网络数据 并用列表展示 豆瓣Top250 api /** * Sample React Native App * https://github.com/facebook/react-nativ ...

  6. 使用ListView控件展示数据

    属性名称    说明items   指定显示那种视图View   指定显示那种视图largelmagelist  大图标图像的imagelist控件SmallLmagelist  小图标图像的imag ...

  7. WinForm 之 使用ListView控件展示数据

    在学习了这么多的WinForm基本控件后,今天在来学习一个比较有意思的包含图片的控件! >>>图像列表控件 ImageList是含有图像对象的集合,可以通过索引或关键字引用该集合中的 ...

  8. Listview的条目item内的点击响应事件

    还是这张图 这里的历史列表就是一个ListView,抛开该界面中ScrollView或者RecycleView与该ListView会有冲突,所谓的冲突,说白了就是父控件与子控件两者间的关系冲突,该冲突 ...

  9. 实现listview的条目点击后改变背景颜色

    gv_categoryeffect_gridview.setChoiceMode(GridView.CHOICE_MODE_SINGLE);,再设置一个selector的背景选择器 getResour ...

随机推荐

  1. Hibernate配置文件的hbm2ddl.auto属性

    今天遇到一个有意思的问题,我目前做的一个网站采用Spring MVC + Spring + Hibernate的架构,我通过页面插入了一些数据到数据库,可是每次重启tomcat之后,数据都莫名其妙地丢 ...

  2. HDU 2037 今年暑假不AC(贪心)

    今年暑假不AC Problem Description “今年暑假不AC?”“是的.”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了 ...

  3. 一步一步学EF系列1【Fluent API的方式来处理实体与数据表之间的映射关系】

    EF里面的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面,还有一个就是F ...

  4. cmusphinx格式问题

    在windows下.lm和.dict同时为ANSI编码,输出正确,否则输出乱码或不输出结果.

  5. sql分页比较简单快捷的方法

    SELECT TOP 显示数量* FROM 表 WHERE (主键id>(SELECT MAX(主键id) FROM(SELECT TOP 页码数*显示数量 主键id FROM 表 ORDER ...

  6. 安装unbuntu系统后改回windows引导的方法

    1.安装EasyBCD 2.点BCD部署 3.分区:选c盘 4.点击编写MBR 5.点编辑引导菜单 6.确定win10后们的是有勾 7.点击保存设置

  7. Python 学习笔记4

    我是一个艺术家. 今天继续学习python啊.争取看到python流程控制.

  8. Laravel框架开发规范-修订版

    1.PHP编码规范 1.1 标签 PHP 程序可以使用<?php ?>或<?= ?>来界定PHP代码 在HTML 页面中嵌入纯变量时,使用<?= ?>这样的形式 纯 ...

  9. JPA 系列教程13-复合主键-@EmbeddedId+@Embeddable

    复合主键 指多个主键联合形成一个主键组合 需求产生 比如航线一般是由出发地及目的地确定,如果要确定唯一的航线就可以用出发地和目的地一起来表示 ddl语句 同复合主键-2个@Id和复合主键-2个@Id+ ...

  10. shell变量的替换

    1 shell变量基础shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如let.declare.expr. ...