listview 适配器多类型

主要是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;
    }
}


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值