Могу ли я использовать два списка строк для одного счетчика? - PullRequest
0 голосов
/ 26 июля 2011

Я хочу использовать спиннер, который может обрабатывать два строковых массива одновременно.Что именно я хочу, так это когда пользователи нажимают на счетчик, поэтому в появившемся представлении должны отображаться строковые элементы 1-го массива, но после выбора одного из элементов, поэтому на этом счетчике должен отображаться соответствующий элемент 2-го массива.

Например, у меня есть2 список 1-й - это список состояний, а 2-й - это список кодов состояний, поэтому, когда я нажимаю счетчик, в появившемся представлении должен отображаться список состояний, но после выбора одного из счетчиков состояния (скажем, Albama) должен отображаться код состояния (AL).

Ответы [ 2 ]

3 голосов
/ 26 июля 2011

Самый простой способ сделать это - правильно обернуть данные в объект. Метод toString будет использоваться для указания способа отображения данных в счетчике. Затем в прослушивателе OnClick вы можете получить состояние от адаптера, а затем его код.

public class State {
  String code;
  String name;

  public State(String n, String c) {
    name = n;
    code = c;
  }

  public String toString() { 
    return name; 
  }
}

Затем используйте список массивов объектов State для вашего адаптера.

Пример на основе Hello, Spinner учебник:

Заменить:

ArrayAdapter adapter = ArrayAdapter.createFromResource(
        this, R.array.planets, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

Автор:

State[] states = new State[] { new State('Alabama', 'AL'), new State('California', 'CA')  };
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, states);
1 голос
/ 26 июля 2011

В методе onClick() первого спиннера создайте другой спиннер в runTime и прикрепите к нему второй массив строк, основываясь на элементе, который нажал ..

...