2010-04-09 116 views
1

首先我对android和Java是新手,所以这是一个初学者的问题。Android/Java初学者:重写ArrayAdapter的getView

我有一些代码覆盖了ArrayAdapter的getView方法。下面是代码

public View getView(int position, View convertView, ViewGroup parent) { 
    TextView label = (TextView)convertView; 
    if (convertView == null) { 
     convertView = new TextView(ctxt); 
     label = (TextView)convertView; 
    } 
    label.setText(items[position]); 
    return (convertView); 
} 

我的问题是:为什么label.setText(items[position]);影响convertView返回值?他们如何相关/链接?

回答

1

TextView label = (TextView)convertView;不设置标签是convertView副本,

convertView。这是对同一个对象的引用。所以当你做

label.setText(items[position]);,它在convertView上做到了。

1

看着你的代码convertViewlabel是两个变量,它们都引用相同的TextView对象。无论你如何处理这两个变量,都会反映在他们参考的TextView对象中。

0
TextView label = (TextView)convertView; 

这两个引用同一个对象(引用label = reference的convertView),因此,convertView将被标签对象反映出来。