listview 适配器多类型

来源:互联网 发布:h5切水果游戏源码 编辑:程序博客网 时间:2024/05/22 02:40

主要是BaseAdapter适配器中的两个方法:

返回类型个数

@Override    public int getViewTypeCount() {        return 2;    }

定义每个位置的类型id:

 @Override    public int getItemViewType(int position){        if(position == list.size()){            return 1;        }else{            return 0;        }    }

在getView方法中根据getItemViewType的id去定义

package cn.com.bjhj.adapter;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.RelativeLayout;import android.widget.TextView;import com.bumptech.glide.Glide;import java.util.List;import cn.com.bjhj.activity.R;import cn.com.bjhj.bean.JHLBean.GetNoHomeWork;import cn.com.bjhj.utils.L;/** * *  */public class HomeworkNotCompleteAdapter extends BaseAdapter implements View.OnClickListener {    private static final String TAG = "HomeworkNotCompleteAdapter";    private Context context;    private List<GetNoHomeWork.ResultEntity> list;    private CallBack callback;    public HomeworkNotCompleteAdapter(Context context, List<GetNoHomeWork.ResultEntity> doWorkList, CallBack callBack) {        this.context = context;        this.list = doWorkList;        this.callback = callBack;        L.d(TAG,"我是未完成作业列表");    }    public interface CallBack{        public void onClick(View view);        void onAlertClick(View view);    }    @Override    public int getCount() {        if(list == null)        return 0;        return list.size()+1;        /*return 5;*/    }    @Override    public Object getItem(int position) {        if (position==list.size()){            return null;        }        return list.get(position);    }    @Override    public long getItemId(int position) {        if (position==list.size()){            return -1;        }        return position;    }    @Override    public int getViewTypeCount() {        return 2;    }    @Override    public int getItemViewType(int position){        if(position == list.size()){            return 1;        }else{            return 0;        }    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder viewHolder = null;        AllAlertBt allAlertBt =null;        int type = getItemViewType(position);        switch (type){            case 0:                if(convertView == null){                    convertView = LayoutInflater.from(context).inflate(R.layout.ls_it_homework_not_complete , null);                    viewHolder = new ViewHolder();                    viewHolder.rlTixing = (RelativeLayout) convertView.findViewById(R.id.rl_tixing);                    viewHolder.nameTxt = (TextView) convertView.findViewById(R.id.name);                    viewHolder.statusTxt = (TextView) convertView.findViewById(R.id.status);                    viewHolder.userfaceImg = (ImageView) convertView.findViewById(R.id.userface);                    convertView.setTag(viewHolder);                }else{                    viewHolder = (ViewHolder) convertView.getTag();                }                String stuName = list.get(position).getStuName();//学生姓名                String img = list.get(position).getImg();//头像                if (img!=null) {                    if (!img.contains("http")) {                        Glide.with(context).load(context.getString(R.string.interface_url_file) + img).placeholder(R.mipmap.ico_userface).into(viewHolder.userfaceImg);                    } else {                        Glide.with(context).load(img).placeholder(R.mipmap.ico_userface).into(viewHolder.userfaceImg);                    }                }else {                    viewHolder.userfaceImg.setImageResource(R.mipmap.ico_userface);                }                viewHolder.nameTxt.setText(stuName);                viewHolder.rlTixing.setOnClickListener(this);                viewHolder.rlTixing.setTag(position);                break;            //最后一个            case 1:                if (convertView==null){                    convertView = LayoutInflater.from(context).inflate(R.layout.item_alrt , null);                    allAlertBt = new AllAlertBt();                    allAlertBt.btAllAlert = (TextView)convertView.findViewById(R.id.tv_bt_alrt);                    convertView.setTag(allAlertBt);                }else {                    allAlertBt = (AllAlertBt) convertView.getTag();                }                allAlertBt.btAllAlert.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        callback.onAlertClick(v);                    }                });                break;        }        return convertView;    }    @Override    public void onClick(View v) {        callback.onClick(v);    }    class ViewHolder{        ImageView userfaceImg;//用户头像        TextView nameTxt;//用户名        TextView statusTxt; //状态        RelativeLayout rlTixing;    }    class AllAlertBt{        TextView btAllAlert;    }}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果手机wifi信号弱怎么办 没电脑想装wifi怎么办 阿巴町手表二维码丢了怎么办 儿童手表二维码丢了怎么办 电话手表二维码丢了怎么办 360儿童手表二维码丢了怎么办 喜书郎电话手表二维码丢了怎么办 微信充话费充错号码怎么办 话费冲到了副卡怎么办 冲话费冲错了怎么办 微信支付未到账怎么办 速卖通修补配件到国外怎么办 速卖通流量低怎么办 速卖通被判定重复铺货怎么办 拼多多商品降权怎么办 运满满有了差评怎么办 房贷款还清后该怎么办 身份证被偷了怎么办啊 苹果手机wifi速度慢怎么办 电脑桌面上的图标不见了怎么办 夏天手机没地方放怎么办 上班手机没地方放怎么办 京东退款未到账怎么办 京东退款失败后怎么办 在京东申请退款怎么办 微信退款没收到钱怎么办 在拼多多不发货怎么办 扫二维码群发微信骗局怎么办 电脑高清晰音频管理器打不开怎么办 吃鸡耳机有杂音怎么办 分期付款车被朋友卖了怎么办 网上购物付款显示繁忙怎么办 同行招牌高于我的招牌怎么办 拼多多刷手退款怎么办 网银卡在手机上卸载了怎么办 企业网银密码忘了怎么办 网银钱转错了怎么办 民生百货购物卡过期了怎么办 新办卡注册过支付宝账号怎么办 床上用品专卖店没人进店怎么办 红蚂蚁咬了红肿痒怎么办