当前位置: 移动技术网 > IT编程>移动开发>Android > Android ListView 条目多样式展示实例详解

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

剑网3藏剑pve宏,早安迷糊小甜心,女风衣

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;


}


}

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

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网