以下转自How you create your view for listview on Android?
How you create your view for listview on Android? There have three versions of getView() function, the first version is a slow way,and the last is the fastest one.
Version 1:
1public View getView(int position, View convertView, ViewGroup parent) {
2 View item = mInflater.inflate(R.layout.list_item_icon_text, null);
3 ((TextView) item.findViewById(R.id.text)).setText(DATA[position]);
4 ((ImageView) item.findViewById(R.id.icon)).setImageBitmap(
5 (position & 1) == 1 ? mIcon1 : mIcon2);
Version 2:
1public View getView(int position, View convertView, ViewGroup parent) {
2 if (convertView == null) {
3 convertView = mInflater.inflate(R.layout.item, parent, false);
5 ((TextView) convertView.findViewById(R.id.text)).setText(DATA[position]);
6 ((ImageView) convertView.findViewById(R.id.icon)).setImageBitmap(
7 (position & 1) == 1 ? mIcon1 : mIcon2);
Version 3: the fast way for getView function.
01static class ViewHolder {
06public View getView(int position, View convertView, ViewGroup parent) {
09 if (convertView == null) {
10 convertView = mInflater.inflate(R.layout.list_item_icon_text,parent, false);
11 holder = new ViewHolder();
12 holder.text = (TextView) convertView.findViewById(R.id.text);
13 holder.icon = (ImageView) convertView.findViewById(R.id.icon);
14 convertView.setTag(holder);
16 holder = (ViewHolder) convertView.getTag();
19 holder.text.setText(DATA[position]);
20 holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);