欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android ListView 条目多样式展示实例详解

程序员文章站 2022-10-24 17:06:43
listview的多种样式条目展示 这里给大家介绍一下简单的listview的多种样式展示 在布局文件中和往常一样写一个listviwe的布局...

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;


}


}

以上是多条目样式展示的一种

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!