版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30519365/article/details/53953962
listview ,Recyclerview 一般情况listview 三级缓存已经满足大部分开发需要了,
package com.netease.nim.demo.adapters; 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.TextView; import com.bumptech.glide.Glide; import com.netease.nim.demo.R; import com.netease.nim.demo.domain.TDjLBean; import com.zhy.autolayout.utils.AutoUtils; import java.util.List; import de.hdodenhof.circleimageview.CircleImageView; /** * Created by Administrator on 2016/12/29. */ public class _BaseAdapter extends BaseAdapter { private List<TDjLBean.DataEntity> data; private Context ctx; private static final int TYPE3 = 3;//不合适 private static final int TYPE2 = 2;//被查看 private static final int TYPE1= 1;//已投递 private static final int TYPE4= 4;//有意向 private static final int TYPE5= 5;//已接受 private static final int TYPE6= 6;//邀面试 private static final int TYPE_COUNT = 7;//item类型的总数 public _BaseAdapter(Context ctx, List<TDjLBean.DataEntity> data) { this.ctx = ctx; this.data=data; } @Override public int getCount() { return data.size(); } @Override public Object getItem(int i) { return data.get(i); } @Override public long getItemId(int i) { return 0; } @Override public int getViewTypeCount() { return 7; } @Override public int getItemViewType(int position) { System.out.println("------pos->>>>>"+position); if ("已投递".equals(data.get(position).getDeliveryStatus())){ return TYPE1; } if ("被查看".equals(data.get(position).getDeliveryStatus())){ return TYPE2; } else if ("不合适".equals(data.get(position).getDeliveryStatus())){ return TYPE3; } else if ("邀面试".equals(data.get(position).getDeliveryStatus())){ return TYPE6; } else if ("已接受".equals(data.get(position).getDeliveryStatus())){ return TYPE5; } else if ("有意向".equals(data.get(position).getDeliveryStatus())){ return TYPE4; } return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { //View inflate = LayoutInflater.from(ctx).inflate(R.layout.tdjl_lv_item, viewGroup, false); System.out.println("===========>>>"+i); int itemViewType = getItemViewType(i); //获取当前类型; CommonHolder cholder=null; YYXHolder yxxholder=null; YMshiHolder holder=null; if (view==null){ switch (itemViewType){ case TYPE1: case TYPE2: case TYPE3: case TYPE5: cholder=new CommonHolder(); view= LayoutInflater.from(ctx).inflate(R.layout.tdjl_common_item, null, false); cholder.tx= (CircleImageView) view.findViewById(R.id.tx); cholder.zwm= (TextView) view.findViewById(R.id.zwm); cholder.time= (TextView) view.findViewById(R.id.time); cholder.gsi= (TextView) view.findViewById(R.id.gsi); cholder. xinzi= (TextView) view.findViewById(R.id.xinzi); cholder. address= (TextView) view.findViewById(R.id.address); cholder. xueli= (TextView) view.findViewById(R.id.xueli); cholder.iv_tag=(ImageView)view.findViewById(R.id.iv_tag); view.setTag(cholder); AutoUtils.autoSize(view); break; case TYPE4://有意向 view= LayoutInflater.from(ctx).inflate(R.layout.td_lv_yxxiang_item, null, false); yxxholder=new YYXHolder(); yxxholder.tx= (CircleImageView) view.findViewById(R.id.tx); yxxholder.zwm= (TextView) view.findViewById(R.id.zwm); yxxholder.time= (TextView) view.findViewById(R.id.time); yxxholder.gsi= (TextView) view.findViewById(R.id.gsi); yxxholder.xinzi= (TextView) view.findViewById(R.id.xinzi); yxxholder.address= (TextView) view.findViewById(R.id.address); yxxholder.xueli= (TextView) view.findViewById(R.id.xueli); view.setTag(yxxholder); AutoUtils.autoSize(view); break; case TYPE6://邀面试 view= LayoutInflater.from(ctx).inflate(R.layout.tdjl_lv_item, null, false); holder=new YMshiHolder(); holder.tx= (CircleImageView) view.findViewById(R.id.tx); holder.zwm= (TextView) view.findViewById(R.id.zwm); holder.time= (TextView) view.findViewById(R.id.time); holder.gsi= (TextView) view.findViewById(R.id.gsi); holder.xinzi= (TextView) view.findViewById(R.id.xinzi); holder.address= (TextView) view.findViewById(R.id.address); holder.xueli= (TextView) view.findViewById(R.id.xueli); view.setTag(holder); AutoUtils.autoSize(view); break; } } else{ switch (itemViewType){ case TYPE1: case TYPE2: case TYPE3: case TYPE5: cholder= (CommonHolder) view.getTag(); break; case TYPE4: yxxholder= (YYXHolder) view.getTag(); break; case TYPE6: holder= (YMshiHolder) view.getTag(); break; } } switch (itemViewType){ case TYPE1: case TYPE2: case TYPE3: case TYPE5: Glide.with(ctx).load(data.get(i).getLogo()).into(cholder.tx); cholder.zwm.setText(data.get(i).getJopTitle()); cholder. gsi.setText(data.get(i).getCompanyName()); cholder. time.setText(data.get(i).getDeliveryTime()); cholder.xinzi.setText(data.get(i).getSalary()); cholder.xueli.setText(data.get(i).getDegree()); cholder. address.setText(data.get(i).getWorkPlace()); if (itemViewType==2){ cholder. iv_tag.setImageResource(R.mipmap.beichankan); } if (itemViewType==3){ // cholder. iv_tag.setImageResource(R.mipmap.buheshi); } if (itemViewType==5){ cholder.iv_tag.setImageResource(R.mipmap.yijieshou); } break; case TYPE4: Glide.with(ctx).load(data.get(i).getLogo()).into(yxxholder.tx); yxxholder. zwm.setText(data.get(i).getJopTitle()); yxxholder.gsi.setText(data.get(i).getCompanyName()); yxxholder.time.setText(data.get(i).getDeliveryTime()); yxxholder.xinzi.setText(data.get(i).getSalary()); yxxholder.xueli.setText(data.get(i).getDegree()); yxxholder.address.setText(data.get(i).getWorkPlace()); break; case TYPE6: Glide.with(ctx).load(data.get(i).getLogo()).into(holder.tx); holder.zwm.setText(data.get(i).getJopTitle()); holder. gsi.setText(data.get(i).getCompanyName()); holder.time.setText(data.get(i).getDeliveryTime()); holder.xinzi.setText(data.get(i).getSalary()); holder. xueli.setText(data.get(i).getDegree()); holder.address.setText(data.get(i).getWorkPlace()); break; } return view; } /** * 邀面试的view */ class YMshiHolder{ CircleImageView tx; TextView zwm; TextView time; TextView gsi; TextView xinzi; TextView address; TextView xueli; } /** * 有意向 */ class YYXHolder{ CircleImageView tx; TextView zwm; TextView time; TextView gsi; TextView xinzi; TextView address; TextView xueli; } /** * 剩余四种情况的viewholder */ class CommonHolder{ CircleImageView tx; TextView zwm; TextView time; TextView gsi; TextView xinzi; TextView address; TextView xueli; ImageView iv_tag; } }服务器返回数据
/** * TotalCount : 4 * PageCount : 1 * Data : [{"Status":[{"DeliveryStatus":"已投递","sort":"1","OperationTime":"2016/12/16"},{"DeliveryStatus":"被查看","sort":"2","OperationTime":"2016/12/16"}],"Resume_Info":null,"Salary":"1000以下","Degree":"学历不限","UserCode":"5840e95c84906307c8a6a033","WorkPlace":"1111","DeliveryTime_1":null,"Logo":"http://192.168.2.10:801/UploadFiles/20161118120621_3699.png","DeliveryTime":"2016-12-16T18:43:43.736+08:00","CompanyName":"河南分秒医配供应链管理有限公司","JopTitle":"11","DeliveryStatus":null,"JopCode":"584e8522548467055ca2ead5","_id":"58536c52548468089479371c","CompanyCode":"582d59ab84906317a0366b43","RecordStatus":0},{"Status":[{"DeliveryStatus":"已投递","sort":"1","OperationTime":"2016/12/16"},{"DeliveryStatus":"被查看","sort":"2","OperationTime":"2016/12/16"},{"DeliveryStatus":"有意向","sort":"3","OperationTime":"2016/12/16"},{"DeliveryStatus":"邀面试","sort":"4","OperationTime":"2016/12/16"},{"DeliveryStatus":"已接受","sort":"5","OperationTime":"2016/12/16"}],"Resume_Info":null,"Salary":"1000以下","Degree":"学历不限","UserCode":"5840e95c84906307c8a6a033","WorkPlace":"","DeliveryTime_1":null,"Logo":"http://192.168.2.10:801/UploadFiles/20161118120621_3699.png","DeliveryTime":"2016-12-16T18:43:43.736+08:00","CompanyName":"河南分秒医配供应链管理有限公司","JopTitle":"人事总监","DeliveryStatus":null,"JopCode":"584e83b0548467055ca2ead4","_id":"58538cbb5484670924b95b43","CompanyCode":"582d59ab84906317a0366b43","RecordStatus":0},{"Status":[{"DeliveryStatus":"已投递","sort":"1","OperationTime":"2016/12/16"}],"Resume_Info":null,"Salary":"8000-10000","Degree":"高中以下","UserCode":"5840e95c84906307c8a6a033","WorkPlace":"null","DeliveryTime_1":null,"Logo":"http://192.168.2.10:801/UploadFiles/20161118120621_3699.png","DeliveryTime":"2016-12-16T17:06:35+08:00","CompanyName":"河南分秒医配供应链管理有限公司","JopTitle":"财务管理","DeliveryStatus":"已投递","JopCode":"585367ce5484680894793714","_id":"5853ae9b54846809240d2708","CompanyCode":"582d59ab84906317a0366b43","RecordStatus":0},{"Status":[{"DeliveryStatus":"已投递","sort":"1","OperationTime":"2016/12/16"}],"Resume_Info":null,"Salary":"50000以上","Degree":"硕士","UserCode":"5840e95c84906307c8a6a033","WorkPlace":"","DeliveryTime_1":null,"Logo":"http://192.168.2.10:801/UploadFiles/20161118120621_3699.png","DeliveryTime":"2016-12-16T12:23:21.58+08:00","CompanyName":"河南分秒医配供应链管理有限公司","JopTitle":"产品UI设计师","DeliveryStatus":null,"JopCode":"584a601f84906319787f38c6","_id":"58536c39548468089479371a","CompanyCode":"582d59ab84906317a0366b43","RecordStatus":0}] * PageIndex : 1 */