前面的代码就是解析接口 json 主要功能代码在适配器类里面 ,实现解析json串中不同布局文件图片在条目中自行判断显示 代码如下:
以下是有俩种布局 如果遇到三种的 一样写
/ /定义变量
private static final int one=0;
private static final int two=1;
总体来说就是在适配器优化里面所加的一些代码
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//实现多条目展示
honderone honderone =null;
hondertwo hondertwo =null;
//获得不同类型的数据
int type = getItemViewType(position);
if (convertView==null) {
switch (type) {
case one:
honderone = new honderone();
//查找布局
convertView=View.inflate(context, R.layout.one, null);
//查找控件
honderone.img= (ImageView) convertView.findViewById(R.id.img);
honderone.name= (TextView) convertView.findViewById(R.id.name);
convertView.setTag(honderone);
break;
case two:
//查找布局
hondertwo = new hondertwo();
convertView=View.inflate(context, R.layout.two, null);
//查找控件
hondertwo.name=(TextView) convertView.findViewById(R.id.name);
hondertwo.img1=(ImageView) convertView.findViewById(R.id.img1);
hondertwo.img2=(ImageView) convertView.findViewById(R.id.img2);
convertView.setTag(hondertwo);
break;
default:
break;
}
}
//赋值
switch (type) {
case one:
//赋值
honderone =(honderone) convertView.getTag();
honderone.name.setText(data.get(position).getTitle());
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.img_in) //加载图片时的图片
.showImageForEmptyUri(R.drawable.img_er) //没有图片资源时的默认图片
.showImageOnFail(R.drawable.img_on) //加载失败时的图片
.cacheInMemory(true) //启用内存缓存
.cacheOnDisk(true) //启用外存缓存
.considerExifParams(true) //启用EXIF和JPEG图像格式
.displayer(new RoundedBitmapDisplayer(20)) //设置显示风格这里是圆角矩形
.build();
//给图片赋值 第一个参数图片的 url路径 第二个参数 控件
ImageLoader.getInstance().displayImage(data.get(position).getPicUrl(),honderone.img);
break;
case two:
hondertwo=(hondertwo) convertView.getTag();
hondertwo.name.setText(data.get(position).getTitle());
//给图片赋值 第一个参数图片的 url路径 第二个参数 控件
ImageLoader.getInstance().displayImage(data.get(position).getPicUrl(), hondertwo.img1);
ImageLoader.getInstance().displayImage(data.get(position).getPicUrl(), hondertwo.img2);
break;
default:
break;
}
return convertView;
}
//实现俩个方法 getItemViewType(int position) 和 getViewTypeCount()
@Override
public int getItemViewType(int position) {
//进行判断 摸除
int aa=position%2;
//如果等等于0走if 否则 走else
if (aa==0) {
return one;
}else{
return two;
}
}
//第二个方法
@Override
public int getViewTypeCount() {
// TODO Auto-generated method stub
return 2;
}
//优化布局1
class honderone{
TextView name;
ImageView img;
}
//优化布局2
class hondertwo{
TextView name;
ImageView img1;
ImageView img2;
}