我浏览了教程并进行了搜索,但仍然无法理解,
getView(int position, View convertView, ViewGroup arg2)
方法在扩展 BaseAdapter
以在我的 android 应用程序中创建自定义 listView 时有效。因此,我无法完全按照自己的意愿编辑自定义 ListView 。
我需要知道这个方法什么时候调用以及参数的含义。
如果有人能解释下面的方法就太好了。谢谢
@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;
}
最佳答案
当您在代码中调用 setAdapter
时,将调用
getView()
。之后,当您将焦点移到列表上或选择任何项目或调用 notifyDataSetChanged()
时,您会收到 getView()
中的调用。
Position
- 项目在我们想要其 View 的项目的适配器数据集中的位置。
convertView
- 如果可能,要重用的旧 View 。注意:您应该在使用前检查此 View 是否为非空且类型是否合适。如果无法转换此 View 以显示正确的数据,则此方法可以创建一个新 View 。异构列表可以指定它们的 View 类型的数量,使这个 View 始终是正确的类型
ViewGroup
- 此 View 最终将附加到该 View 。
关于java - Android 自定义 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7038986/