2010-04-09 117 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將被標籤對象反映出來。