Переопределить ArrayAdapter getView () int position - PullRequest
1 голос
/ 02 августа 2020

Я пытаюсь создать настраиваемый адаптер массива для моего списка, когда он переопределяет метод 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;
    }
}```

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Метод getView() отвечает за предоставление представлений для listView, чтобы он мог отображать listViewItems. Параметр int position, принимаемый в качестве входных данных методом getView(), является индексом элемента listView. Теперь, в соответствии с положением элемента listView, вы хотите добавить к нему соответствующие данные. Предположим, отображается 7-й элемент, но вы не хотите, чтобы данные из 3-го индекса в arrayList отображались в 7-м элементе представления списка.

Предположим, что метод getView вызывается для 3-го индекса в listView вы можете получить доступ к arrayList для получения данных из 3-го индекса в arrayList.

Окончательно параметр позиции - это индекс текущего элемента listView, а в методе getView вы используете эту позицию для получения данных из arrayList в позиции THAT .

1 голос
/ 02 августа 2020

Я не понимаю аргумент int position, publi c View getView (int position, @Nullable View convertView, @NonNull ViewGroup parent)

Класс ArrayAdapter имеет getView() метод, отвечающий за создание представлений. Итак, за кулисами список вызывает этот метод, чтобы получить представление для конкретного position. для получения дополнительной информации arrayAdapter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...