我通過教程去搜查,但我仍然無法理解,Android的自定義列表視圖
getView(int position, View convertView, ViewGroup arg2)
方法擴展BaseAdapter
何時創建我的Android應用程序自定義的ListView是如何工作的。因此,我不能編輯我想要的自定義列表視圖。
我需要知道這個方法調用的時間和參數的含義。
如果有人可以解釋下面的方法它很棒。當你在你的代碼中調用setAdapter
感謝
@Override
public View getView(int position, View convertView, ViewGroup arg2)
{
ViewHolder holder;
LayoutInflater inflater = context.getLayoutInflater();
if (convertView == null)
{
convertView = inflater.inflate(R.layout.listitem_row, null);
holder = new ViewHolder();
holder.txtViewTitle = (TextView) convertView.findViewById(R.id.textView1);
holder.txtViewDescription = (TextView) convertView.findViewById(R.id.textView2);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.txtViewTitle.setText(title[position]);
holder.txtViewDescription.setText(description[position]);
return convertView;
}
是的,但是當我使用此方法將項目加載到listview中時,getView()方法運行的元素數量是顯示。我無法理解爲什麼...... – JibW
並且在它第一次創建convertView = inflater.inflate(R.layout.listitem_row,null)的同時,當它加載項時,它會運行多次。你能解釋一下爲什麼? – JibW
@JibW當然,這取決於你在屏幕上可以看到多少行。假設你只看到3行,這意味着ListView只需要顯示3個convertView,當你滾動它們時,這3個將被重用。因爲你一次沒有在屏幕上顯示更多的內容。這就是爲什麼getView會被調用3次。嘗試HierarchyViewer它將幫助你更多地瞭解ConvertViews的數量。希望這個回答你的問題...如果不能ping我...我會很樂意幫助你。 – Gopal