其他的我就不發了 就發一下adapter適配器渲染 其實Listview和Recylerview的適配器渲染區別不大 可以說是一樣的
private List<ContentBean.Data> list;
private Context context;
private final int TT_ITEM=0;
private final int GN_ITEM=1;
private final int ITEM_COUNT=2;//條目類型數量
public ContentAdapter(Context context) {
this.context = context;
list=new ArrayList<>();
}
public void setList(List<ContentBean.Data> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public int getViewTypeCount() {
return ITEM_COUNT;
}
//判斷是哪種類型的條目
@Override
public int getItemViewType(int position) {
return getItem(position).isTt()?TT_ITEM:GN_ITEM;
}
@Override
public int getCount() {
return list.size();
}
@Override
public ContentBean.Data getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null){
convertView=LayoutInflater.from(context).inflate(getItem(position).isTt()?R.layout.tt_item:R.layout.gn_item,parent,false);
holder=new ViewHolder(convertView);
}else{
holder= (ViewHolder) convertView.getTag();
}
holder.bind(getItem(position));
return convertView;
}
//寄存器
class ViewHolder{
TextView title;
TextView date;
ImageView icon;
public ViewHolder(View convertView){
title=convertView.findViewById(R.id.title);
date=convertView.findViewById(R.id.date);
icon=convertView.findViewById(R.id.icon);
convertView.setTag(this);
}
public void bind(ContentBean.Data data){
title.setText(data.getTitle());
date.setText(data.getDate());
if(icon!=null){
icon.setImageResource(R.mipmap.ic_launcher);
}
}
}