多条目加载适配器
来源:互联网 发布:网络安全策略模型 编辑:程序博客网 时间:2024/06/01 08:10
public class MyAdapter extends BaseAdapter {
Context context;
List<DataDataBean.ResultBean.ListBean> list;
private int TYTLE_ONLY = 0;//只有文字的形式
private int IMAGE_LEFT = 1;//表示图片在左边,文字在右边
private int IMAGE_RIGHT = 2;//* 2表示图片在右边,文字在左边
private int IMAGE_BOTTOM = 3;// * 3表示文字在上边,图片在下面
public MyAdapter(Context context, List<DataDataBean.ResultBean.ListBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
/**
* 1.适配器中重写这个getViewTypeCount方法...得到视图类型的数量,,,也就是listView要展示多少种不同的视图
* @return
*/
@Override
public int getViewTypeCount() {
return 4;
}
@Override
public int getItemViewType(int position) {
if (position%4 == 0){
return TYTLE_ONLY;
}else if (position %4==1){
return IMAGE_LEFT;
}else if (position %4==2){
return IMAGE_RIGHT;
}
return IMAGE_BOTTOM;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
//在做优化之前先判断一下当前条目展示的是哪一种类型,,,然后再进行关联布局进行优化
if (getItemViewType(i) == TYTLE_ONLY){
TitleHolder holder;
if (view == null){
view = View.inflate(context, R.layout.item_title_layout,null);
holder = new TitleHolder();
holder.textView = view.findViewById(R.id.text_title);
view.setTag(holder);
}else {
holder = (TitleHolder) view.getTag();
}
//赋值
holder.textView.setText(list.get(i).getTitle());
}else if (getItemViewType(i) == IMAGE_LEFT){
ImageLeftHolder holder;
if (view == null){
view = View.inflate(context, R.layout.item_layout,null);
holder = new ImageLeftHolder();
holder.textView = view.findViewById(R.id.text_title);
holder.imageView = view.findViewById(R.id.image_view);
view.setTag(holder);
}else {
holder = (ImageLeftHolder) view.getTag();
}
//赋值
holder.textView.setText(list.get(i).getTitle());
//显示图片
ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());
}else if (getItemViewType(i) == IMAGE_RIGHT){
ImageRightHolder holder;
if (view == null){
view = View.inflate(context, R.layout.item_right_layout,null);
holder = new ImageRightHolder();
holder.textView = view.findViewById(R.id.text_title);
holder.imageView = view.findViewById(R.id.image_view);
view.setTag(holder);
}else {
holder = (ImageRightHolder) view.getTag();
}
//赋值
holder.textView.setText(list.get(i).getTitle());
//显示图片
ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());
}else if (getItemViewType(i) == IMAGE_BOTTOM){
ImageBottomHolder holder;
if (view == null){
view = View.inflate(context, R.layout.item_bottom_layout,null);
holder = new ImageBottomHolder();
holder.textView = view.findViewById(R.id.text_title);
holder.imageView = view.findViewById(R.id.image_view);
view.setTag(holder);
}else {
holder = (ImageBottomHolder) view.getTag();
}
//赋值
holder.textView.setText(list.get(i).getTitle());
//显示图片
ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());
}
return view;
}
private class TitleHolder{
TextView textView;
}
private class ImageLeftHolder{
TextView textView;
ImageView imageView;
}
private class ImageRightHolder{
TextView textView;
ImageView imageView;
}
private class ImageBottomHolder{
TextView textView;
ImageView imageView;
}
}
Context context;
List<DataDataBean.ResultBean.ListBean> list;
private int TYTLE_ONLY = 0;//只有文字的形式
private int IMAGE_LEFT = 1;//表示图片在左边,文字在右边
private int IMAGE_RIGHT = 2;//* 2表示图片在右边,文字在左边
private int IMAGE_BOTTOM = 3;// * 3表示文字在上边,图片在下面
public MyAdapter(Context context, List<DataDataBean.ResultBean.ListBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
/**
* 1.适配器中重写这个getViewTypeCount方法...得到视图类型的数量,,,也就是listView要展示多少种不同的视图
* @return
*/
@Override
public int getViewTypeCount() {
return 4;
}
@Override
public int getItemViewType(int position) {
if (position%4 == 0){
return TYTLE_ONLY;
}else if (position %4==1){
return IMAGE_LEFT;
}else if (position %4==2){
return IMAGE_RIGHT;
}
return IMAGE_BOTTOM;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
//在做优化之前先判断一下当前条目展示的是哪一种类型,,,然后再进行关联布局进行优化
if (getItemViewType(i) == TYTLE_ONLY){
TitleHolder holder;
if (view == null){
view = View.inflate(context, R.layout.item_title_layout,null);
holder = new TitleHolder();
holder.textView = view.findViewById(R.id.text_title);
view.setTag(holder);
}else {
holder = (TitleHolder) view.getTag();
}
//赋值
holder.textView.setText(list.get(i).getTitle());
}else if (getItemViewType(i) == IMAGE_LEFT){
ImageLeftHolder holder;
if (view == null){
view = View.inflate(context, R.layout.item_layout,null);
holder = new ImageLeftHolder();
holder.textView = view.findViewById(R.id.text_title);
holder.imageView = view.findViewById(R.id.image_view);
view.setTag(holder);
}else {
holder = (ImageLeftHolder) view.getTag();
}
//赋值
holder.textView.setText(list.get(i).getTitle());
//显示图片
ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());
}else if (getItemViewType(i) == IMAGE_RIGHT){
ImageRightHolder holder;
if (view == null){
view = View.inflate(context, R.layout.item_right_layout,null);
holder = new ImageRightHolder();
holder.textView = view.findViewById(R.id.text_title);
holder.imageView = view.findViewById(R.id.image_view);
view.setTag(holder);
}else {
holder = (ImageRightHolder) view.getTag();
}
//赋值
holder.textView.setText(list.get(i).getTitle());
//显示图片
ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());
}else if (getItemViewType(i) == IMAGE_BOTTOM){
ImageBottomHolder holder;
if (view == null){
view = View.inflate(context, R.layout.item_bottom_layout,null);
holder = new ImageBottomHolder();
holder.textView = view.findViewById(R.id.text_title);
holder.imageView = view.findViewById(R.id.image_view);
view.setTag(holder);
}else {
holder = (ImageBottomHolder) view.getTag();
}
//赋值
holder.textView.setText(list.get(i).getTitle());
//显示图片
ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());
}
return view;
}
private class TitleHolder{
TextView textView;
}
private class ImageLeftHolder{
TextView textView;
ImageView imageView;
}
private class ImageRightHolder{
TextView textView;
ImageView imageView;
}
private class ImageBottomHolder{
TextView textView;
ImageView imageView;
}
}
阅读全文
0 0
- 多条目加载适配器
- 多条目加载适配器
- 适配器 多条目加载
- listview多条目加载适配器
- gridview多条目加载适配器
- listview多条目加载适配器
- listview的多条目加载的适配器
- listView多条目加载_listView适配器
- RecyclerView的多条目加载适配器
- 安卓多条目加载专用布局 与多条目加载的专用适配器
- 安卓多条目加载专用布局 与多条目加载的专用适配器
- Listview多条目加载轮播-适配器写法
- 适配器多条目优化
- Android多条目适配器
- 多条目适配器--pizifusheng
- RecyclerView 多条目(适配器)
- ListView多条目加载
- ListView 多条目加载
- [分块 DP] 51Nod1259 整数划分 V2
- Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa j2ee分布式架构
- NOIP-2016 换教室
- java基础
- 史无前例企业架构分享--SSM组合+springmvc+mybatis+shiro+restful+bootstrap
- 多条目加载适配器
- recyclerview点击进入详情
- P2066 机器分配
- 通知
- [BZOJ1109][POI2007]堆积木 DP+二分
- day 8--Linux文件、目录权限
- BZOJ4300 绝世好题
- 前端面试题(4)iframe有哪些优点?iframe缺点是什么?
- sqoop