Как загрузить ListView с несколькими массивами - PullRequest
0 голосов
/ 01 марта 2011

Я пытаюсь загрузить свой ListView из следующего массива

static final String[][] Bookings = new String[][] {{"WC11", "John Smith"},{"WX11", "Terry Jones"}};

Я пытаюсь использовать следующий код, но Eclipse не примет его.«конструктор ArrayAdapter (ListVActivity, int, String [] []) не определен».Как я могу загрузить свой массив в мой ListView?

Ответы [ 2 ]

2 голосов
/ 01 марта 2011

ArrayAdapter предназначен для 1-го массива, и конструктор ожидает что-то вроде String[] bookings.

Вы можете сделать что-то подобное.Имейте в виду, что вам нужно переопределить toString () для Booking, потому что именно это отображается в TextView.

class Booking {
    String type;
    String name;
    public Booking(String type, String name) {
        this.type = type;
        this.name = name;
    }
}

Booking[] Bookings = new Booking[2];
Bookings[0] = new Booking("WC11", "John Smith");
Bookings[1] = new Booking("WX11", "Terry Jones");

ListView bkgList = (ListView) findViewById(R.id.bkg_list);
setListAdapter(new ArrayAdapter<Booking>(this, R.layout.list_item, Bookings));

Если вы хотите сохранить двумерный массив, вы можете расширить BaseAdapter для создания персонализированного адаптера Bookings.

0 голосов
/ 01 марта 2011

Если вам нужно более одного TextView на строку вашего ListView, вы можете рассмотреть возможность создания подкласса BaseAdapter вместо использования ArrayAdapter.

Пример того, как это сделать, см. здесь

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