Заполнение спиннера массивом JSON - PullRequest
2 голосов
/ 07 ноября 2011

У меня есть следующий код, заполняющий счетчик,

JSONObject jsonResponse = new JSONObject(new String(buffer));
JSONArray myUsers = jsonResponse.getJSONArray("GetBusNamesResult");

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.add("Select a Buseness...");

for (int i = 0; i < myUsers.length(); ++i)
{
    //String jsonStr = myUsers.getString(i);
    //JSONObject myJsonObj = new JSONObject(jsonStr);
    //adapter.add(myJsonObj.getString("BusName"));
    adapter.add(myUsers.getString(i));
}

userSpinner.setAdapter(adapter);
userSpinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

С этим объектом JSON,

{"GetBusNamesResult":[{"BusName":"Fred Camping","BusPhone":"0434943743"},{"BusName":"Joe's Carpets","BusPhone":"1234687965"}]}

Но он отображает весь список для каждой записи в счетчике, как это,

{“BusName”:”Joe”,”BusPhone”:”1234567890”}

Как я могу это исправить? Я могу поместить только имя пользователя в спиннер с закомментированным кодом выше, но затем не получить возвращаемых значений.

Кроме того, этот возвращаемый JSON называется «Array List» ???

Приветствия

Mike.

1 Ответ

4 голосов
/ 07 ноября 2011

Изменить;

adapter.add(myUsers.getString(i));

на

adpater.add(myUsers.getJSONObject(i).getString("BusName");

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

...