在微调器内设置位置

时间:2010-04-11 20:47:34

标签: android spinner

下午好,

我有一个包含3个微调器的微调器数组。每个微调器都通过res字符串数组填充。每个数组包含数字1-100。当活动开始时,每个微调器都包含一个1-100的字符串数组,当你点击一个微调器时,第一个选择是1.

假设用户在第一个微调器上选择25。我希望第二个微调器在点击微调器时显示25作为滚动的起点,但不会触发微调器。第二个微调器仍然包含阵列1-100,因此如果需要,用户可以向下滚动到一个出租号码。

我尝试过使用setSelection,但是这会导致第二个微调器触发而导致不良影响(即使用户没有单击第二个微调器,编辑框也会填充第二个数字)。我希望第二个微调器只显示25作为起点。

我该怎么做?

1 个答案:

答案 0 :(得分: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);

我依次为几个纺纱厂做这件事并且效果很好。