Создание карты обратно к значению в массиве из позиции, выбранной в счетчике - PullRequest
0 голосов
/ 09 ноября 2011

Это должно быть намного проще!

У меня есть массив объектов JSON, которыми я заполняю счетчик, все проекты работают нормально, если я заполняю счетчик парами имя и значение, но выглядит плохо,Если я заполняю счетчик только именем, я теряю значение.Из того, что я могу судить по чтению, единственный способ сделать это - заполнить счетчик именем, извлечь позицию выбора, а затем вернуться к массиву, чтобы найти значение имени в той же позиции, что и ввращатель, вот как это должно работать ??

Если так, как мне это сделать?

Вот код для установки счетчика,

myUsers = jsonResponse.getJSONArray("GetBusinessNamesResult");

ArrayAdapter<String> adapter = new ArrayAdapter<String>(PropertyManagement.this, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

for (int i = 0; i < myUsers.length(); ++i)
{
    try {

        adapter.add(myUsers.getJSONObject(i).getString("BusinessName"));  

    } catch (JSONException e) {
        e.printStackTrace();
    }                   
}

Затем в моем методе onItemSelected я думаю, что у меня есть исходный массив в parent, но я не уверен!Он отправляется как параметр через AdapterView <?> parent, то есть код, полученный из учебника, и я не уверен, что здесь происходит.

String jsonStr = parent.getItemAtPosition(pos).toString();

Так что, просто взглянув на код выше, я думаю, что у меня есть исходный массив и позиция, илиЯ могу просто выбрать выбранное имя, и в этом случае это не сработает, и, возможно, стоит поискать в myUsers ???

Пары имя-значение - BusinessName и BusinessPhone.Как вы думаете, я могу получить то, что мне нужно от этого?

Приветствия,

Майк.

1 Ответ

0 голосов
/ 09 ноября 2011

Подкласс BaseAdapter и используйте его вместо вашего ArrayAdapter.

Вот пример:

public class BaseAdapterWithHiddenValue extends BaseAdapter {

    public static class Entry {

        public String name;
        public String value;
    }

    List<Entry> items = new LinkedList<Entry>();

    public void add(String name, String value) {
        Entry e = new Entry();
        e.name = name;
        e.value = value;
        items.add(e);
    }

    @Override
    public int getCount() {
        return items.size();
    }

    @Override
    public Entry getItem(int arg0) {
        return items.get(arg0);
    }

    @Override
    public long getItemId(int arg0) {
        return 0;
    }

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        // TODO: I'm lazy, create individual list entry view here
        return null;
    }

}
...