Я получаю значение для spinner из базы данных на сервере и храню его в ArrayList:
JSONArray jsonArray = new JSONArray(json);
if (jsonArray != null) {
//JSONArray userDetails = jsonObj.getJSONArray("child_name");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject catObj = (JSONObject)jsonArray.getJSONObject(i);
NameChild cat = new NameChild(catObj.getString("id"), catObj.getString("name"));
namesList.add(cat);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
После этого я загружает одно из полученных значений в spinner:
List <String> lables = new ArrayList<String>();
for (int i = 0; i < namesList.size(); i++) {
lables.add(namesList.get(i).getName());
}
spinnerview = (Spinner) view.findViewById(R.id.spinner2);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, lables);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerview.setAdapter(adapter);
Мой вопрос заключается в следующем: как мне получить id выбранного значения с spinner, которое было загружено вместе с ним с сервера?
Вам надо отображать не строки в адаптере, но объекты ваших данных. Для этого надо:
String
на NameChild
так: adapter = new ArrayAdapter<NameChild>(this, android.R.layout.simple_spinner_item, namesList);
toString()
метод в вашем объекте данных для того, чтобы спиннер отображал нужное. В вашем случае - пусть метод возвращает NameChild#getName()
так:public class NameChild {
//тут существующие методы класса
@Override
public String toString() {
return getName();
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Приложение вылетает вот здесь:
Господа, подскажите, есть ли возможность, используя SimpleCursorAdapter стандартно в ListView, сделать группировку одинаковых значений в одно? И также,...