用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

多条目

2016-12-19 作者: 张贤伟举报

[java]代码库

package com.example.day10_listview;
 
import java.util.List;
 
import com.example.day10_listview.bean.Info;
import com.lidroid.xutils.BitmapUtils;
 
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
 
public class MyBaseAdapter extends BaseAdapter {
 
    private Context context;
    private List<Info> list;
 
    public MyBaseAdapter(List<Info> list, Context context) {
        this.list = list;
        this.context = context;
 
    }
 
    @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);
        ViewHolder3 holder3 = null;
        ViewHolder2 holder2 = null;
        ViewHolder1 holder1 = null;
        if (convertView == null) {
            // 通过视图类型填充不同的布局
            switch (type) {
            case 0:
                convertView = View.inflate(context, R.layout.item2, null);
 
                holder2 = new ViewHolder2();
 
                holder2.imageView = (ImageView) convertView
                        .findViewById(R.id.item2_imageView);
 
                convertView.setTag(holder2);
 
                break;
            case 1:
                convertView = View.inflate(context, R.layout.item1, null);
                holder1 = new ViewHolder1();
 
                holder1.textView = (TextView) convertView
                        .findViewById(R.id.item1_textView);
                convertView.setTag(holder1);
                break;
            case 2:
                convertView = View.inflate(context, R.layout.item3, null);
 
                holder3 = new ViewHolder3();
 
                holder3.textView = (TextView) convertView
                        .findViewById(R.id.item3_textView);
                holder3.imageView = (ImageView) convertView
                        .findViewById(R.id.item3_imageView);
 
                convertView.setTag(holder3);
 
                break;
 
            }
 
        } else {
 
            switch (type) {
            case 0:
                holder2 = (ViewHolder2) convertView.getTag();
                break;
            case 1:
                holder1 = (ViewHolder1) convertView.getTag();
 
                break;
            case 2:
                holder3 = (ViewHolder3) convertView.getTag();
 
                break;
 
            }
 
        }
///////////////////以上是listView优化,以下是赋值/////////////////////////////////////////
         
          
        BitmapUtils bitmapUtils=new BitmapUtils(context);
         
        Info info = list.get(position);
         
        switch (type) {
        case 0:
        bitmapUtils.display(holder2.imageView, info.firstImg);
            break;
        case 1:
            holder1.textView.setText(info.title);
            break;
        case 2:
            holder3.textView.setText(info.title);
            bitmapUtils.display(holder3.imageView, info.firstImg);
            break;
 
         
        }
         
         
        return convertView;
    }
 
    @Override
    // 条目视图的类型
    public int getItemViewType(int position) {
 
        Info info = list.get(position);
        String firstImg = info.firstImg;
        String title = info.title;
        // 有图片的地址,但是没有文字
        if (!TextUtils.isEmpty(firstImg) && TextUtils.isEmpty(title)) {
 
            return 0;
        } else if (TextUtils.isEmpty(firstImg) && !TextUtils.isEmpty(title)) {
            // 没有图片的地址,但是有文字
            return 1;
        } else if (!TextUtils.isEmpty(firstImg) && !TextUtils.isEmpty(title)) {
 
            // 有图片的地址,也有文字
            return 2;
        }
        return 1;
    }
 
    @Override
    // 条目类型总数
    public int getViewTypeCount() {
 
        return 3;
    }
 
    class ViewHolder3 {
        TextView textView;
        ImageView imageView;
    }
 
    class ViewHolder1 {
        TextView textView;
 
    }
 
    class ViewHolder2 {
        ImageView imageView;
 
    }
 
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...