@Override public View getView(int position, View convertView, ViewGroup parent) { // Log.d("ddd", "getView"); if (mInflater == null) { mInflater = LayoutInflater.from(parent.getContext()); } AdapterItem<T> item; if (convertView == null) { item = getItemView(mType); convertView = mInflater.inflate(item.getLayoutResId(), parent, false); convertView.setTag(R.id.tag_item, item); item.onBindViews(convertView); item.onSetViews(); if (DEBUG) convertView.setBackgroundColor(0xffff0000); } else { item = (AdapterItem<T>) convertView.getTag(R.id.tag_item); if (DEBUG) convertView.setBackgroundColor(0xff00ff00); } item.onUpdateViews(mDataList.get(position), position); return convertView; }