1

こんにちは、

3 つのスピナーを含むスピナー配列があります。各スピナーは、res 文字列配列を介して設定されます。各配列には、1 ~ 100 の数値が含まれます。アクティビティが開始されると、各スピナーには 1 ~ 100 の文字列配列が含まれ、スピナーをクリックすると最初の選択肢は 1 になります。

ユーザーが最初のスピナーで 25 を選んだとします。スピナーがクリックされたときにスクロールの開始点として25を表示するが、スピナーを起動しないようにするには、2番目のスピナーが必要です。2 番目のスピナーには 1 ~ 100 の配列が含まれているため、ユーザーは必要に応じて下位の番号までスクロールできます。

setSelection を使用してみましたが、2 番目のスピナーが起動して望ましくない効果が発生します (ユーザーが 2 番目のスピナーをクリックしていなくても、編集ボックスに 2 番目の数値が入力されます)。2 番目のスピナーが開始点として 25 を表示するようにしたいと思います。

どうすればいいですか?

4

1 に答える 1

2

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);

私は結果として、いくつかのスピナーに対して次々にこれを行い、うまく機能します。

于 2011-01-10T10:38:59.820 に答える