Создание новых текстовых представлений внутри пользовательского адаптера массива

#android #listview #textview #android-arrayadapter

#Android #listview #textview #android-arrayadapter

Вопрос:

Я пытаюсь создать динамические текстовые представления, извлеченные из списка массивов внутри пользовательского адаптера массива. Данные списка массива возвращаются из ответа JSON. Поскольку я заранее не знаю, сколько элементов будет содержать мой массив, я не могу создавать текстовые представления в XML, поэтому их необходимо создавать программно.

Текстовые представления добавляются в вертикальный линейный макет следующим образом:

 ArrayList<String> authors = currentBook.getAuthor();
    LinearLayout authorsList = convertView.findViewById(R.id.authors_list);

    for (int i =0; i < authors.size(); i  ) {
        TextView textView = new TextView(getContext());
        textView.setText(authors.get(i));
        authorsList.addView(textView);
    }
  

При запуске некоторые текстовые представления создаются дважды, и данные продолжают меняться при прокрутке списка.

Я думаю, что есть проблема с внутренней работой представлений списка, которую я не понимаю, но не могу указать пальцем. Будем признательны за любую помощь.

Комментарии:

1. Почему бы не использовать ListView / recyclelerview с переработанным пользовательским элементом списка, который содержит TexitView?

2. Попробуйте добавить: authorsList.removeAllViews(); перед циклом for. Надеюсь, это поможет!

3. @M.Zain Я новичок в Android и только сейчас узнаю о Recyclelerview. Мне удалось решить проблему. Большое спасибо за комментарий.

4. @I_A_Mok Это сработало так хорошо, большое вам спасибо

5. @ M. Elauzei… Я рад этому… счастливого пути обучения