Android: ArrayList с несколькими столбцами для просмотра списка - PullRequest
1 голос
/ 02 ноября 2011

Я пытаюсь найти лучший способ отображения результата json в виде списка. У меня есть следующий ответ json от службы WCF RESTful:

[
    {
        "Class": "Lorem",
        "Company": "Ipsum",
        "Id": "XXXX",
        "Name": "Avent"
    },
    {
        "Class": "Consectetur",
        "Company": "Adipiscing",
        "Id": "YYYYY",
        "Name": "Nulla"
    }
]

Я прочитал несколько примеров массива списков для просмотра списка, но я не пытаюсь обойти ни один из них с проблемой нескольких столбцов. Я хочу, чтобы в столбце отображалось большое поле «Имя», а под названием «Компания» - меньший текст. Я хотел бы сохранить идентификатор как своего рода ключ, когда пользователь нажимает на элемент, чтобы вызвать его в другой функции, но я не уверен, как лучше это сделать.

Групповой класс:

public class Group {

    private String Id;
    private String Name;
    private String Class;
    private String Company;   
}

оператор синтаксического анализа gson:

ArrayList<Group> groups = gson.fromJson(jsonString, new TypeToken<ArrayList<Group>>() {}.getType())

Я использую ArrayAdapter, но у меня возникает ощущение, что мне может понадобиться создать собственный адаптер для этого. Должен ли я использовать HashMap, чтобы сделать эту работу? Нужно ли как-то трансформировать мой arraylist?

1 Ответ

2 голосов
/ 02 ноября 2011

ArrayList - это первый шаг в правильном направлении, затем используйте HashMap для каждой строки и, наконец, добавьте его в SimpleAdapter .

Подробнее

Каждая строка состоит из нескольких представлений, которые соответствуют нескольким точкам данных. Чтобы сохранить все эти точки данных организованными, мы помещаем их в HashMap, по 1 хэш-карте на строку. Чтобы представить несколько строк данных, у нас есть ArrayList для хранения каждой строки данных, по 1 элементу (из HashMap) на строку. Есть два шага, чтобы собрать все это вместе. Сначала передаем отображение ArrayList и Data to View в конструктор SimpleAdapter. Во-вторых, настройте SimpleAdapter.ViewBinder по мере необходимости. Связыватель может автоматически обрабатывать текст для TextViews и идентификаторы рисуемых ресурсов для ImageViews.

Пример кода здесь слишком велик, но посмотрите его здесь .

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