一般,向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); } } }