Двойные строки в списке с помощью ArrayAdapter (Android) - PullRequest
0 голосов
/ 13 октября 2010

Я новичок в программировании Android и мне нужна помощь.У меня есть следующий код:

Object[] list_cities = parsedData.getCityname().toArray();
            Object[] list_countries = parsedData.getCountryname().toArray();

            // Display the available locations
            list_search.setAdapter(new ArrayAdapter<Object>(this, android.R.layout.simple_list_item_2, android.R.id.text1, list_cities));
            list_search.setAdapter(new ArrayAdapter<Object>(this, android.R.layout.simple_list_item_2, android.R.id.text2, list_countries));

Я хотел бы отображать двойные строки для каждой записи в списке (город и страна), но мне не повезло.С помощью приведенного выше кода я вижу только страны, но не города.Есть ли способ добавить оба адаптера в list_search, чтобы я мог видеть все данные?

Спасибо всем за ответы !!

Ответы [ 3 ]

2 голосов
/ 13 октября 2010
  1. Создайте пользовательский контейнерный объект, возможно CountryCityLocation, с парой строк для названия страны и города.
  2. Создайте массив этих контейнеров и заполните его вашей информацией.
  3. Создайте пользовательский ArrayAdapter, возможно CountryCityAdapter, примените массив к пользовательскому адаптеру и передайте его в getListView.setAdapter.
  4. Переопределите метод getView ArrayAdapter, чтобы применить ваши строки имен к TextViews в вашем пользовательском представлении строки списка.

РЕДАКТИРОВАТЬ - удалена неработающая учебная ссылка

1 голос
/ 13 октября 2010

Вы можете привязать только один адаптер к ListView. Если вы хотите объединить адаптеры, вам нужно реализовать собственный адаптер. Например, вы можете наследовать SimpleAdapter, предоставить два простых адаптера в конструкторе и объединить данные в методе getItem.

0 голосов
/ 13 октября 2010

Эта ссылка может помочь. Он показывает listView с многострочными строками, реализованными с использованием HashMaps.

...