一般,向ListView中添加数据,都是用自定义的ListViewAdapter继承自BaseAdapter。下面这个是一个常用的,优化过的模板。
直接上代码:
public class ListViewAdapter extends BaseAdapter {
public List<OptionItemBean> optionItemBeanList;
public Context context;
public ListViewAdapter(List<OptionItemBean> optionItemBeanList, Context context) {
this.optionItemBeanList = optionItemBeanList;
this.context = context;
}
@Override
public int getCount() {
return optionItemBeanList.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item_bean, parent, false);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.tvTitle.setText(optionItemBeanList.get(position).getBtnText());
viewHolder.tvDetailInfo.setText(optionItemBeanList.get(position).getText());
return convertView;
}
static class ViewHolder {
TextView tvTitle, tvDetailInfo;
public ViewHolder(View convertView) {
tvTitle = convertView.findViewById(R.id.itembean_tvTitle);
tvDetailInfo = convertView.findViewById(R.id.itembean_tvDetailInfo);
}
}
}