下午好,
我有一个包含3个微调器的微调器数组。每个微调器都通过res字符串数组填充。每个数组包含数字1-100。当活动开始时,每个微调器都包含一个1-100的字符串数组,当你点击一个微调器时,第一个选择是1.
假设用户在第一个微调器上选择25。我希望第二个微调器在点击微调器时显示25作为滚动的起点,但不会触发微调器。第二个微调器仍然包含阵列1-100,因此如果需要,用户可以向下滚动到一个出租号码。
我尝试过使用setSelection,但是这会导致第二个微调器触发而导致不良影响(即使用户没有单击第二个微调器,编辑框也会填充第二个数字)。我希望第二个微调器只显示25作为起点。
我该怎么做?
答案 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);
我依次为几个纺纱厂做这件事并且效果很好。