我通过教程去搜查,但我仍然无法理解,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