Android 2.2 SDK - Создать Spinner из карты? - PullRequest
0 голосов
/ 14 января 2011

По сути, я хочу связать «выбранную» опцию с идентификатором, поэтому вместо этого (мой текущий способ):

            Vector spinnerList = new Vector();
            spinnerList.addElement("No");
            spinnerList.addElement("Yes");

Я бы сделал что-то вроде этого (Hashtable / Vector только для совместимости с Blackberry):

            String id = "3";
            Hashtable spinnerMap = new Hashtable();
            spinnerMap.put(id, "No");
            spinnerMap.put(id, "Yes");

В настоящее время выбранный «параметр» из счетчика выводит 0 или 1 (на основе «Нет», «Да»). Итак, мой вопрос: если я устанавливаю счетчики программно с карты, значения которой я не знаю (я просто знаю идентификаторы), как мне это сделать?

            Spinner spinner = new Spinner(this);
            ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
                    android.R.layout.simple_spinner_dropdown_item, spinnerList);
            spinner.setAdapter(spinnerArrayAdapter);

            spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                public void onItemSelected(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    System.out.println("Selected: " + arg2);

                }

                public void onNothingSelected(AdapterView<?> arg0) {
                    System.out.println("Nothing selected: " + arg0);
                }
            });

Ответы [ 2 ]

0 голосов
/ 14 января 2011

Переверните вашу карту, и вы можете легко найти целочисленный идентификатор на основе возвращенной строки.

int id = spinnerMap.get(spinner.getSelectedItem());
0 голосов
/ 14 января 2011

Ваш вопрос не очень понятен.Что именно вы хотите выполнить?
Если вы просто хотите отобразить данные, отличные от простого списка строк, я думаю, вам следует подумать о создании специального адаптера.

...