我正在尝试为listview创建自定义数组适配器,当它覆盖getView
方法时,我不理解int position
参数,public View getView(int position,@nullable View convertView,@nonnull ViewGroup parent)
,它是当前视图的索引还是arrayAdapter将从中获取数据的数组列表的索引?
下面是完整的代码。
public class WordAdapter extends ArrayAdapter<Word> {
public WordAdapter(Activity context, ArrayList<Word> arrList){
super(context,0, arrList);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View listitemview = convertView;
if(listitemview == null){
listitemview = LayoutInflater.from(getContext()).inflate(R.layout.list_item,parent,false);
}
Word word = getItem(position);
TextView defaultView =(TextView) listitemview.findViewById(R.id.english);
defaultView.setText(word.getmDefaultTranslation());
TextView miwokView =(TextView) listitemview.findViewById(R.id.miwok);
miwokView.setText(word.getmMiwokTranslation());
return listitemview;
}
}```
我不理解int position参数,public View getView(int position,@nullable View convertView,@nonnull ViewGroup parent)
ArrayAdapter类具有负责创建视图的getView()
方法。 因此,在幕后,listview调用此方法来获取特定位置
的视图。 有关更多信息arrayAdapter
方法getView()
负责向listView提供视图,以便它可以显示ListViewItems。 由getView()
方法作为输入的paremeterint position
是arrayAdapter将从中获取数据的arrayList的索引。 如您所见,word word=getItem(position);
用于获取该位置的数据。