Установка положения внутри счетчика - PullRequest
1 голос
/ 12 апреля 2010

Добрый день,

У меня есть матрица счетчиков, содержащая 3 счетчика. Каждый счетчик заполняется через массив строк res. Каждый массив содержит цифры 1-100. Когда начинается действие, каждый спиннер содержит строковый массив 1-100, а при нажатии на спиннер первый выбор - 1.

Скажем, пользователь выбирает 25 на первом счетчике. Мне бы хотелось, чтобы 2-й счетчик показывал 25 в качестве начальной точки для прокрутки при нажатии на счетчик, но не при его запуске. Второй счетчик будет по-прежнему содержать массив 1-100, поэтому пользователь может прокрутить вниз до номера арендодателя, если захочет.

Я пытался использовать setSelection, но это вызывает срабатывание 2-го счетчика, что приводит к нежелательным эффектам (поле ввода заполняется 2-м номером, даже если пользователь не щелкнул 2-й счетчик). Мне бы хотелось, чтобы 2-й счетчик показывал 25 как отправную точку.

Как мне это сделать?

1 Ответ

2 голосов
/ 10 января 2011

setSelection() - единственный способ, которым я знаю, это не должно быть причиной проблемы. В моем случае у меня есть:

Spinner spinner = new Spinner(getApplicationContext());
spinner = (Spinner) findViewById(R.id.spinner);

//search for the position that we need to move to, 
//the spinner has an array adapter set to it
int recordInPreferences = WidgetProvider.settings.getInt("SpinnerChoice", 0);
int counter = -1;
do {
  counter++;
} while (
  counter < getResources().getIntArray(R.array.stringofvalues).length &&
  getResources().getIntArray(R.array.stringofvalues)[counter] != recordInPreferences
);

spinner.setSelection(counter, true);

Я делаю это последовательно для нескольких счетчиков один за другим, и это хорошо работает.

...