2010-04-09 2 views
1

Во-первых, я новичок в Android и Java, так что это вопрос начинающих.Android/Java Новичок: переопределение getView ArrayAdapter

У меня есть код, который переопределяет метод getView ArrayAdapter. Вот код

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

Глядя на ваш код convertView и label - это две переменные, которые ссылаются на один и тот же объект TextView. Все, что вы делаете с любой переменной, будет отражено в объекте TextView, с которым они ссылаются.

0
TextView label = (TextView)convertView; 

что оба ссылки один и тот же объект (ссылка метки = ссылка convertView), поэтому convertView будет отражен объектом метки.

Смежные вопросы