listview的多item类型的优化
来源:互联网 发布:雷神 外星人 知乎 编辑:程序博客网 时间:2024/05/16 07:12
package com.bwei.adapter;
import java.util.ArrayList;
import java.util.List;
import com.bwei.test.R;
import com.bwei.vo.Bean;
import com.lidroid.xutils.BitmapUtils;
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 Myadapter extends BaseAdapter {
private static final int Type_one = 1;
private static final int Type_Zero = 0;
List<Bean> list;
Context context;
private ViewHolder1 vh1;
private ViewHolder2 vh2;
public Myadapter(List<Bean> list, Context context) {
super();
this.list = list;
this.context = context;
}
// 下拉刷新
public void lvDown(List<Bean> list) {
this.list.addAll(0,list);
this.notifyDataSetChanged();
}
@Override
public int getItemViewType(int position) {
if(list.get(position).imgBig.length()>10){
return Type_one;
}
return Type_Zero;
}
@Override
public int getViewTypeCount() {
// TODO Auto-generated method stub
return 2;
}
// 下拉刷新
public void lvUp(List<Bean> list) {
this.list.addAll(list);
this.notifyDataSetChanged();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type=getItemViewType(position);
if(convertView==null){
switch (type) {
case Type_Zero:
vh1 = new ViewHolder1();
convertView=LayoutInflater.from(context).inflate(R.layout.item, null);
vh1.tv1=(TextView) convertView.findViewById(R.id.item_tv);
vh1.img1=(ImageView) convertView.findViewById(R.id.item_img);
convertView.setTag(vh1);
break;
case Type_one:
vh2 = new ViewHolder2();
convertView=LayoutInflater.from(context).inflate(R.layout.iten2, null);
vh2.tv1=(TextView) convertView.findViewById(R.id.item2_tv);
vh2.img1=(ImageView) convertView.findViewById(R.id.item2_img);
vh2.img2=(ImageView) convertView.findViewById(R.id.item2_big_img);
convertView.setTag(vh2);
break;
}
}else{
switch (type) {
case Type_Zero:
convertView.getTag();
break;
case Type_one:
convertView.getTag();
break;
}
}
switch (type) {
case Type_Zero:
BitmapUtils utils=new BitmapUtils(context);
utils.display(vh1.img1, list.get(position).portrait);
vh1.tv1.setText(list.get(position).body);
break;
case Type_one:
BitmapUtils utils2=new BitmapUtils(context);
utils2.display(vh2.img1, list.get(position).portrait);
utils2.display(vh2.img2, list.get(position).imgBig);
vh2.tv1.setText(list.get(position).body);
break;
}
return convertView;
}
class ViewHolder1{
ImageView img1;
TextView tv1;
}
class ViewHolder2{
ImageView img1;
TextView tv1;
ImageView img2;
}
}
import java.util.ArrayList;
import java.util.List;
import com.bwei.test.R;
import com.bwei.vo.Bean;
import com.lidroid.xutils.BitmapUtils;
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 Myadapter extends BaseAdapter {
private static final int Type_one = 1;
private static final int Type_Zero = 0;
List<Bean> list;
Context context;
private ViewHolder1 vh1;
private ViewHolder2 vh2;
public Myadapter(List<Bean> list, Context context) {
super();
this.list = list;
this.context = context;
}
// 下拉刷新
public void lvDown(List<Bean> list) {
this.list.addAll(0,list);
this.notifyDataSetChanged();
}
@Override
public int getItemViewType(int position) {
if(list.get(position).imgBig.length()>10){
return Type_one;
}
return Type_Zero;
}
@Override
public int getViewTypeCount() {
// TODO Auto-generated method stub
return 2;
}
// 下拉刷新
public void lvUp(List<Bean> list) {
this.list.addAll(list);
this.notifyDataSetChanged();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type=getItemViewType(position);
if(convertView==null){
switch (type) {
case Type_Zero:
vh1 = new ViewHolder1();
convertView=LayoutInflater.from(context).inflate(R.layout.item, null);
vh1.tv1=(TextView) convertView.findViewById(R.id.item_tv);
vh1.img1=(ImageView) convertView.findViewById(R.id.item_img);
convertView.setTag(vh1);
break;
case Type_one:
vh2 = new ViewHolder2();
convertView=LayoutInflater.from(context).inflate(R.layout.iten2, null);
vh2.tv1=(TextView) convertView.findViewById(R.id.item2_tv);
vh2.img1=(ImageView) convertView.findViewById(R.id.item2_img);
vh2.img2=(ImageView) convertView.findViewById(R.id.item2_big_img);
convertView.setTag(vh2);
break;
}
}else{
switch (type) {
case Type_Zero:
convertView.getTag();
break;
case Type_one:
convertView.getTag();
break;
}
}
switch (type) {
case Type_Zero:
BitmapUtils utils=new BitmapUtils(context);
utils.display(vh1.img1, list.get(position).portrait);
vh1.tv1.setText(list.get(position).body);
break;
case Type_one:
BitmapUtils utils2=new BitmapUtils(context);
utils2.display(vh2.img1, list.get(position).portrait);
utils2.display(vh2.img2, list.get(position).imgBig);
vh2.tv1.setText(list.get(position).body);
break;
}
return convertView;
}
class ViewHolder1{
ImageView img1;
TextView tv1;
}
class ViewHolder2{
ImageView img1;
TextView tv1;
ImageView img2;
}
}
0 0
- listview的多item类型的优化
- Adapter类型控件之ListView Item多布局的实现
- listview的滑动监听和多类型item
- listview的重要属性viewtype,实现多类型item样式
- ListView多类型Item
- listView中 的不同item类型
- ListView有多种Item View的优化
- 单item布局的listView优化
- ListView有多种Item View的优化
- Android之ListView包含多种类型的Item
- 当listview里的item不止一种类型时
- listview item的问题
- listview item的高度
- listview的item动画
- [android ui]ListView有多种Item View的优化
- 优化ListView中的item被反复的创建
- listview加载不同的item并实现holder优化
- ListView中的item中的Onclick事件的优化
- 通过过滤器生成静态页面-springmvc
- 树-面试题
- spring实现AOP的方式
- 按图片找布局
- STL_list应用举例
- listview的多item类型的优化
- 如何快速看懂一个大型程序
- Openstack中的eventlet分析(1)
- platform
- opencv学习(2)——图像处理的一些常见操作
- Spring框架 JdbcTemplate(五)
- Android 复习1.1 神奇的bundle
- ORACLE体系结构
- link to SIFT算法