Android / Java初学者:重写ArrayAdapter的getView

时间:2010-04-09 01:55:23

标签: android

首先,我是android和Java的新手,所以这是一个初学者的问题。

我有一些代码覆盖了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返回值?它们如何相关/相关?

3 个答案:

答案 0 :(得分:1)

TextView label = (TextView)convertView;未将标签设置为convertView

的副本

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

label.setText(items[position]);,它在convertView上完成。

答案 1 :(得分:1)

查看代码convertViewlabel是两个引用相同TextView对象的变量。无论您对这两个变量做什么,都会反映在它们引用的TextView对象中。

答案 2 :(得分:0)

TextView label = (TextView)convertView;

两者都引用相同的对象(label的引用= convertView的引用),因此,convertView将被标签对象反射。