Android - RecyclerView с различным динамическим контентом, отличающимся для каждого элемента - PullRequest
3 голосов
/ 01 апреля 2019

У меня есть некоторая коллекция json, полученная из rest api, она определяет различные типы параметров, например:

  • счетчик с коллекцией значений (из строки или некоторых объектов класса с некоторыми полями)
  • поле даты и времени со значением даты
  • поле для редактирования текста
  • набор флажков (флажок определяется идентификатором, именем - заголовком, состоянием, отмеченным / не отмеченным)
  • наборпереключатели

Каждый параметр также назван.

Что мне нужно: визуализировать список элементов (каждый элемент будет одним из описанных выше типов), позволить пользователю настраивать значения для каждогоиз них получить коллекцию (в том же формате json) и опубликовать измененный json на сервере.

Первый подход, который я рассмотрел, заключается в динамическом добавлении элементов управления в макет в представлении прокрутки, соответствующем типу элемента.Но я считаю, что это не очень хороший подход, может быть, лучше использовать RecyclerView и пользовательский список.

У вас есть идеи, как создать такой список?Afaik Android RecyclerView предполагает, что каждый элемент списка имеет одинаковую разметку, возможно ли получить то, что мне нужно?

1 Ответ

1 голос
/ 01 апреля 2019

Это похоже на то, над чем я работал.Вам нужно будет создать различные виджеты и типы на основе типа ввода, необходимого для каждого элемента в коллекции.

Чтобы получить последние введенные пользователем значения, сохраните их в классе модели, выделенном дляответ json, сопоставьте их и отправьте обратно на сервер.

Проверьте это: https://guides.codepath.com/android/Heterogenous-Layouts-inside-RecyclerView

Я использовал TextWatcher для перехвата изменений, внесенных пользователем для редактирования текста, checkchangelistener для радиокнопок, DateTimePickerс текстовым просмотром для отображения даты и времени.

Использование textwatcher в edittext: Как получить позицию редактирования текста из Recycler View, используя Text Watcher в android

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