listview多条目展示
来源:互联网 发布:3d游戏编程大师技巧 编辑:程序博客网 时间:2024/05/17 18:29
package com.bwie.topLinapp.adapter;
import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.VideoView;
import com.bwie.first.R;
import com.bwie.topLinapp.bean.NewsInfo.DataBean;
import com.bwie.topLineapp.utils.CommonUtils;
import com.bwie.topLineapp.utils.ImageLoaderUtils;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
public class CategoryItemAdapter extends BaseAdapter {
private static final int TYPE_LISTVIEW_NORMAL = 1;
private static final int TYPE_LISTVIEW_NO_PIC = 2;
private static final int TYPE_LISTVIEW_VIDEO = 3;
private static final int TYPE_LISTVIEW_MULTIPLE_PIC = 4;
private static final int TYPE_LISTVIEW_LARGE_PIC = 5;
private DisplayImageOptions initOptions;
Context context;
List<DataBean> dataList;
public CategoryItemAdapter(Context context, List<DataBean> dataList) {
this.context = context;
this.dataList = dataList;
initOptions = ImageLoaderUtils.initOptions();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return dataList != null ? dataList.size() : 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return dataList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
/**
* 获取listview条目类别的个数
*/
@Override
public int getViewTypeCount() {
return 5;
}
/**
* 获取具体的某个索引值下的条目的条目类型
*/
@Override
public int getItemViewType(int position) {
if (dataList.get(position).has_video) {
return TYPE_LISTVIEW_VIDEO;
}
if (dataList.get(position).has_image) {
return TYPE_LISTVIEW_NO_PIC;
}
if (dataList.get(position).large_image_list != null
&& dataList.get(position).large_image_list.size() > 0) {
return TYPE_LISTVIEW_LARGE_PIC;
}
if (dataList.get(position).image_list != null
&& dataList.get(position).image_list.size() > 0) {
return TYPE_LISTVIEW_MULTIPLE_PIC;
}
return TYPE_LISTVIEW_NORMAL;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 获取当前条目的类型
int itemViewType = getItemViewType(position);
BaseViewHolder baseViewHolder;
if (convertView == null) {
baseViewHolder = new BaseViewHolder();
switch (itemViewType) {
case TYPE_LISTVIEW_LARGE_PIC:
convertView = CommonUtils.inflate(R.layout.type_large_pic_item);
baseViewHolder.iv_news_pic = (ImageView) convertView
.findViewById(R.id.iv_news_pic);
convertView.setTag(baseViewHolder);
break;
case TYPE_LISTVIEW_MULTIPLE_PIC:
convertView = CommonUtils
.inflate(R.layout.type_multiple_pic_item);
baseViewHolder.iv_news_pic1 = (ImageView) convertView
.findViewById(R.id.iv_news_pic1);
baseViewHolder.iv_news_pic2 = (ImageView) convertView
.findViewById(R.id.iv_news_pic2);
baseViewHolder.iv_news_pic3 = (ImageView) convertView
.findViewById(R.id.iv_news_pic3);
convertView.setTag(baseViewHolder);
break;
case TYPE_LISTVIEW_NO_PIC:
convertView = CommonUtils.inflate(R.layout.type_no_pic_item);
convertView.setTag(baseViewHolder);
break;
case TYPE_LISTVIEW_NORMAL:
convertView = CommonUtils.inflate(R.layout.type_normal_item);
baseViewHolder.iv_news_pic = (ImageView) convertView
.findViewById(R.id.iv_news_pic);
convertView.setTag(baseViewHolder);
break;
case TYPE_LISTVIEW_VIDEO:
convertView = CommonUtils.inflate(R.layout.type_video_item);
baseViewHolder.iv_news_pic = (ImageView) convertView
.findViewById(R.id.iv_news_pic);
convertView.setTag(baseViewHolder);
break;
default:
break;
}
baseViewHolder.tv_news_comment = (TextView) convertView
.findViewById(R.id.tv_news_comment);
baseViewHolder.tv_news_source = (TextView) convertView
.findViewById(R.id.tv_news_source);
baseViewHolder.tv_news_title = (TextView) convertView
.findViewById(R.id.tv_news_title);
baseViewHolder.tv_news_time = (TextView) convertView
.findViewById(R.id.tv_news_time);
baseViewHolder.iv_news_delete = (ImageView) convertView
.findViewById(R.id.iv_news_delete);
baseViewHolder.tv_news_comment
.setText(dataList.get(position).comment_count + "");
baseViewHolder.tv_news_source
.setText(dataList.get(position).source);
baseViewHolder.tv_news_title.setText(dataList.get(position).title);
} else {
baseViewHolder = (BaseViewHolder) convertView.getTag();
switch (itemViewType) {
case TYPE_LISTVIEW_LARGE_PIC:
ImageLoader.getInstance().displayImage(
dataList.get(position).large_image_list.get(0).url,
baseViewHolder.iv_news_pic, initOptions);
break;
case TYPE_LISTVIEW_MULTIPLE_PIC:
ImageLoader.getInstance().displayImage(
dataList.get(position).image_list.get(0).url,
baseViewHolder.iv_news_pic1, initOptions);
ImageLoader.getInstance().displayImage(
dataList.get(position).image_list.get(1).url,
baseViewHolder.iv_news_pic2, initOptions);
ImageLoader.getInstance().displayImage(
dataList.get(position).image_list.get(2).url,
baseViewHolder.iv_news_pic3, initOptions);
break;
case TYPE_LISTVIEW_NO_PIC:
break;
case TYPE_LISTVIEW_NORMAL:
try {
ImageLoader.getInstance().displayImage(
dataList.get(position).middle_image.url,
baseViewHolder.iv_news_pic, initOptions);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
case TYPE_LISTVIEW_VIDEO:
try {
ImageLoader.getInstance().displayImage(
dataList.get(position).large_image_list.get(0).url,
baseViewHolder.iv_news_pic, initOptions);
} catch (Exception e) {
e.printStackTrace();
}
break;
default:
break;
}
baseViewHolder.tv_news_comment
.setText(dataList.get(position).comment_count + "");
baseViewHolder.tv_news_source
.setText(dataList.get(position).source);
baseViewHolder.tv_news_title.setText(dataList.get(position).title);
}
// 赋值
return convertView;
}
class BaseViewHolder {
TextView tv_news_comment, tv_news_title, tv_news_time, tv_news_source,
tv_news_type;
ImageView iv_news_pic, iv_news_pic1, iv_news_pic2, iv_news_pic3;
VideoView vv_news;
ImageView iv_news_delete;
}
}
import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.VideoView;
import com.bwie.first.R;
import com.bwie.topLinapp.bean.NewsInfo.DataBean;
import com.bwie.topLineapp.utils.CommonUtils;
import com.bwie.topLineapp.utils.ImageLoaderUtils;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
public class CategoryItemAdapter extends BaseAdapter {
private static final int TYPE_LISTVIEW_NORMAL = 1;
private static final int TYPE_LISTVIEW_NO_PIC = 2;
private static final int TYPE_LISTVIEW_VIDEO = 3;
private static final int TYPE_LISTVIEW_MULTIPLE_PIC = 4;
private static final int TYPE_LISTVIEW_LARGE_PIC = 5;
private DisplayImageOptions initOptions;
Context context;
List<DataBean> dataList;
public CategoryItemAdapter(Context context, List<DataBean> dataList) {
this.context = context;
this.dataList = dataList;
initOptions = ImageLoaderUtils.initOptions();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return dataList != null ? dataList.size() : 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return dataList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
/**
* 获取listview条目类别的个数
*/
@Override
public int getViewTypeCount() {
return 5;
}
/**
* 获取具体的某个索引值下的条目的条目类型
*/
@Override
public int getItemViewType(int position) {
if (dataList.get(position).has_video) {
return TYPE_LISTVIEW_VIDEO;
}
if (dataList.get(position).has_image) {
return TYPE_LISTVIEW_NO_PIC;
}
if (dataList.get(position).large_image_list != null
&& dataList.get(position).large_image_list.size() > 0) {
return TYPE_LISTVIEW_LARGE_PIC;
}
if (dataList.get(position).image_list != null
&& dataList.get(position).image_list.size() > 0) {
return TYPE_LISTVIEW_MULTIPLE_PIC;
}
return TYPE_LISTVIEW_NORMAL;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 获取当前条目的类型
int itemViewType = getItemViewType(position);
BaseViewHolder baseViewHolder;
if (convertView == null) {
baseViewHolder = new BaseViewHolder();
switch (itemViewType) {
case TYPE_LISTVIEW_LARGE_PIC:
convertView = CommonUtils.inflate(R.layout.type_large_pic_item);
baseViewHolder.iv_news_pic = (ImageView) convertView
.findViewById(R.id.iv_news_pic);
convertView.setTag(baseViewHolder);
break;
case TYPE_LISTVIEW_MULTIPLE_PIC:
convertView = CommonUtils
.inflate(R.layout.type_multiple_pic_item);
baseViewHolder.iv_news_pic1 = (ImageView) convertView
.findViewById(R.id.iv_news_pic1);
baseViewHolder.iv_news_pic2 = (ImageView) convertView
.findViewById(R.id.iv_news_pic2);
baseViewHolder.iv_news_pic3 = (ImageView) convertView
.findViewById(R.id.iv_news_pic3);
convertView.setTag(baseViewHolder);
break;
case TYPE_LISTVIEW_NO_PIC:
convertView = CommonUtils.inflate(R.layout.type_no_pic_item);
convertView.setTag(baseViewHolder);
break;
case TYPE_LISTVIEW_NORMAL:
convertView = CommonUtils.inflate(R.layout.type_normal_item);
baseViewHolder.iv_news_pic = (ImageView) convertView
.findViewById(R.id.iv_news_pic);
convertView.setTag(baseViewHolder);
break;
case TYPE_LISTVIEW_VIDEO:
convertView = CommonUtils.inflate(R.layout.type_video_item);
baseViewHolder.iv_news_pic = (ImageView) convertView
.findViewById(R.id.iv_news_pic);
convertView.setTag(baseViewHolder);
break;
default:
break;
}
baseViewHolder.tv_news_comment = (TextView) convertView
.findViewById(R.id.tv_news_comment);
baseViewHolder.tv_news_source = (TextView) convertView
.findViewById(R.id.tv_news_source);
baseViewHolder.tv_news_title = (TextView) convertView
.findViewById(R.id.tv_news_title);
baseViewHolder.tv_news_time = (TextView) convertView
.findViewById(R.id.tv_news_time);
baseViewHolder.iv_news_delete = (ImageView) convertView
.findViewById(R.id.iv_news_delete);
baseViewHolder.tv_news_comment
.setText(dataList.get(position).comment_count + "");
baseViewHolder.tv_news_source
.setText(dataList.get(position).source);
baseViewHolder.tv_news_title.setText(dataList.get(position).title);
} else {
baseViewHolder = (BaseViewHolder) convertView.getTag();
switch (itemViewType) {
case TYPE_LISTVIEW_LARGE_PIC:
ImageLoader.getInstance().displayImage(
dataList.get(position).large_image_list.get(0).url,
baseViewHolder.iv_news_pic, initOptions);
break;
case TYPE_LISTVIEW_MULTIPLE_PIC:
ImageLoader.getInstance().displayImage(
dataList.get(position).image_list.get(0).url,
baseViewHolder.iv_news_pic1, initOptions);
ImageLoader.getInstance().displayImage(
dataList.get(position).image_list.get(1).url,
baseViewHolder.iv_news_pic2, initOptions);
ImageLoader.getInstance().displayImage(
dataList.get(position).image_list.get(2).url,
baseViewHolder.iv_news_pic3, initOptions);
break;
case TYPE_LISTVIEW_NO_PIC:
break;
case TYPE_LISTVIEW_NORMAL:
try {
ImageLoader.getInstance().displayImage(
dataList.get(position).middle_image.url,
baseViewHolder.iv_news_pic, initOptions);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
case TYPE_LISTVIEW_VIDEO:
try {
ImageLoader.getInstance().displayImage(
dataList.get(position).large_image_list.get(0).url,
baseViewHolder.iv_news_pic, initOptions);
} catch (Exception e) {
e.printStackTrace();
}
break;
default:
break;
}
baseViewHolder.tv_news_comment
.setText(dataList.get(position).comment_count + "");
baseViewHolder.tv_news_source
.setText(dataList.get(position).source);
baseViewHolder.tv_news_title.setText(dataList.get(position).title);
}
// 赋值
return convertView;
}
class BaseViewHolder {
TextView tv_news_comment, tv_news_title, tv_news_time, tv_news_source,
tv_news_type;
ImageView iv_news_pic, iv_news_pic1, iv_news_pic2, iv_news_pic3;
VideoView vv_news;
ImageView iv_news_delete;
}
}
0 0
- ListView多条目展示
- ListView多条目展示
- listview多条目展示
- listView 多条目展示
- ListView多条目展示
- listview多条目展示
- ListView多条目展示
- Listview(多条目展示)
- listview多条目展示
- ListView 多条目展示
- listview(多条目展示)
- ListView多条目展示
- ListView 多条目展示
- ListView多条目展示
- ListView的多条目展示
- listview的多条目展示
- ListView多条目的展示
- Listview 多条目展示_AsyncTask
- 八、组合模式Composite(结构型)
- Codeforces 115A Party
- 打字
- Unbuntu下安装jdk
- 看了简书的感想
- listview多条目展示
- 集合思维导图
- 侧滑的使用
- 【Android】使用Picasso加载图片的内存优化实践
- DP-HDU-5773-The All-purpose Zero
- java运行其他程序或指令
- 侧滑的实现方式
- 【Effective C++读书笔记】篇十一(条款26~条款28)
- 使用java 爬虫 抓取youtube,youku,facebook 等视频网站的视频数据(请求规则的分析)