Mam Spinner
, które pobierają swoje wartości z string-array
w pliku array.xml. Wygląda to tak:
<string-array name="arr_typl">
<item>0</item>
<item>1</item>
<item>4</item>
<item>5</item>
<item>12</item>
<item>13</item>
</string-array>
Jeśli chcę uzyskać z tego jakąś wartość, mogę to uzyskać za pomocą getSelectedItem()
. Ale kiedy chcę ustawić Spinner
z np. Numerem 13, pojawia się taki błąd:
java.lang.ArrayIndexOutOfBoundsException: length=6; index=13
Jak mogę to zrobić, aby Spinner
otrzymało wartość zamiast pozycji? Oto mój kod:
spinner3_6 = Objects.requireNonNull(getView()).findViewById(R.id.sp3_6);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(Objects.requireNonNull(getActivity()), R.array.arr_typl_3, R.layout.value_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner3_6.setAdapter(adapter);
Z góry dziękuję
3 odpowiedzi
Możesz znaleźć pozycję swoich danych w tablicy i przekazać ją do Spinner:
final String[] values = getResources().getStringArray(R.array.arr_typl);
final int position = Arrays.asList(values).indexOf("13");
Jeśli szukasz metody w Spinner, takiej jak spinner.setSelectedItem (item), nie ma żadnej.
Musisz znaleźć pozycję przedmiotu. Masz przedmiot i masz tablicę przędzarki.
// The array that you are filling the spinner with
String[] array = getResources().getStringArray(R.array.testArray);
// We have to find the position, initial position is -1, that means that we haven't found the position yet
int position = -1;
for (int i = 0; i < array.length; i++) {
if (array[i].contains(item)) {
position = i;
}
}
Następnie możesz zadzwonić pod numer spinner.setSelection(position)
Powinieneś otrzymać taką tablicę String
String[] stringArray = getResources().getStringArray(R.array.shoes);
final int position = ArrayUtils.indexOf(stringArray ,"13");
Następnie ustaw pokrętło jako
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(Objects.requireNonNull(getActivity()), stringArray ,
R.layout.value_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setSelection(position);
Podobne pytania
Nowe pytania
android
Android to mobilny system operacyjny Google, używany do programowania lub tworzenia urządzeń cyfrowych (smartfony, tablety, samochody, telewizory, Wear, Glass, IoT). W przypadku tematów związanych z Androidem użyj tagów specyficznych dla Androida, takich jak android-intent, android-activity, android-adapter itp. W przypadku pytań innych niż programowanie lub programowanie, ale związanych ze strukturą Androida, użyj tego linku: https: // android.stackexchange.com.