Android ListView 条目多样式展示实例详解
ListView的多种样式条目展示
- 这里给大家介绍一下简单的ListView的多种样式展示
- 在布局文件中和往常一样写一个ListViwe的布局
其他的这里就不多说了,直接介绍适配器里的操作
packagecom.bwei.test.BaseAdapter; importjava.util.List; importcom.bwei.test.R; importcom.bwei.test.bean.News; importcom.nostra13.universalimageloader.core.DisplayImageOptions; importcom.nostra13.universalimageloader.core.ImageLoader; importandroid.R.color; importandroid.R.layout; importandroid.content.Context; importandroid.view.LayoutInflater; importandroid.view.View; importandroid.view.ViewGroup; importandroid.widget.BaseAdapter; importandroid.widget.ImageView; importandroid.widget.TextView; publicclassMyBaseAdapterextendsBaseAdapter{ privateContextcontext; privateListnewlist; //ImageLoader privateDisplayImageOptionsOptions; //定义样式常量,注意常量值要从0开始 privatestaticfinalintTYPE_LISTVIEW_NORMAL=0; privatestaticfinalintTYPE_LISTVIEW_NO_PIC=1; publicMyBaseAdapter(Contextcontext,List newlist, DisplayImageOptionsoptions){ super(); this.context=context; this.newlist=newlist; Options=options; } @Override publicintgetCount(){ //ListView的总共条数 returnnewlist.size(); } @Override publicObjectgetItem(intarg0){ //TODOAuto-generatedmethodstub returnnull; } @Override publiclonggetItemId(intarg0){ //TODOAuto-generatedmethodstub return0; } /* *注意我们要填充的布局个数和我们要展示的样式个数一样 *最好一个样式一个填充布局 * **/ @Override publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ //TODOAuto-generatedmethodstub //获取当前条目的类型 intitemViewType=getItemViewType(position); ViewHolderviewHolder; if(convertView==null){ viewHolder=newViewHolder(); switch(itemViewType){ caseTYPE_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; caseTYPE_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){ caseTYPE_LISTVIEW_NORMAL: ImageLoader.getInstance().displayImage( newlist.get(position).getImgs(), viewHolder.imageView,Options); break; caseTYPE_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()); } returnconvertView; } /** *获取具体的某个索引值下的条目的条目类型 */ @Override publicintgetItemViewType(intposition){ //TODOAuto-generatedmethodstub //判断以什么结束的属性 if(newlist.get(position).getImgs().endsWith(".jpg")){ returnTYPE_LISTVIEW_NORMAL; } returnTYPE_LISTVIEW_NO_PIC; } /** *获取listView条目类别的个数(样式) */ @Override publicintgetViewTypeCount(){ //TODOAuto-generatedmethodstub return2; } //容器 classViewHolder{ ImageViewimageView; TextViewtexttitle,textcopyright,texttime; } }
以上是多条目样式展示的一种
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!