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,Listnewlist,
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;
}
}
以上是多条目样式展示的一种
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!