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
- listview 适配器多类型
- ListView自定义适配器和适配类型
- listview多条目加载适配器
- listview多条目加载适配器
- ListView+适配器
- ListView适配器
- ListView适配器
- ListView适配器
- ListView适配器
- Listview+适配器
- listview适配器
- listview-适配器
- ListView适配器
- ListView适配器
- ListView多布局适配器判断条件
- listview的多条目加载的适配器
- listView多条目加载_listView适配器
- Listview 多条目展示_适配器
- MVVM前端框架个人见解
- http错误码
- 如何在高并发分布式系统中生成全局唯一Id
- ThreadLocal的一些自己的理解
- Hibernate通用Dao实现
- listview 适配器多类型
- Head First 设计模式之工厂模式(Factory Pattern)
- 微信小程序开发
- 一个自己编的小游戏——猜数
- 基于线程池和NIO技术构建高效的多协议Android通讯框架(转)
- ecplise文件之间的关系
- java.util.Collections.unmodifiableList()方法实例
- JavaScript之路开篇--介绍
- mvp架构初体验之介绍与实践