以下转自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:
1
public
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:
1
public
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.
01
static
class
ViewHolder {
06
public
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);