2013-01-09 10 views
6

Kiedy normalnie zapełniam Spinner, tak jak to robiłem w przeszłości, zwykle używam SpinnerAdaptera, wtedy zwykle mam przedmioty w zasobach, które go zapełnią.Jak wypełnić Spinner z wartością int

Mam obecnie inne zapytanie, mam w moim kodzie dane wejściowe użytkownika dla int i chcę, aby mój spinner zapełnił się liczbami do wybranego przez użytkownika numeru. Jeśli więc użytkownik wpisze numer "5", zostanie zapisany w zmiennej int. Następnie chcę, aby Spinner pokazywał 1,2,3,4,5 jako opcje.

Naprawdę nie jestem pewien, jak do tego podejść.

Dzięki Oli

+0

http://stackoverflow.com/questions/5999262/populate-spinner-dynamicznie-in-android-from-edit-text Użyj adaptera. –

Odpowiedz

23

Edited

Poniżej jest podstawowym przykładem jak można dodać liczb całkowitych do wirówki:

mspin=(Spinner) findViewById(R.id.spinner1); 
Integer[] items = new Integer[]{1,2,3,4}; 
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this,android.R.layout.simple_spinner_item, items); 
mspin.setAdapter(adapter); 

Można odwołać się do tego i dokonać zmian w swoim projekt zgodnie z twoją logiką. Również w twoim przypadku powinieneś użyć ArrayList z liczb całkowitych, ponieważ liczba wyboru użytkownika wydaje się być dynamiczna. możesz utworzyć listę tablic i zastąpić ją dla tablicy Integer w powyższym kodzie.

Mam nadzieję, że to pomoże!

+0

Jeśli nie znasz maksymalnej liczby w czasie kompilacji, może tworzyć tablicę 'items' w czasie wykonywania (np.' Integer [] items = new Integer [size]; 'i pętla for do wypełnienia tablicy). W takim przypadku łatwiej byłoby użyć 'List' i' ListAdapter'. –

+0

Właśnie podałem przykład, a następnie zorientowałem się, że dane wejściowe są dynamiczne. Właśnie zredagowałem moją odpowiedź. ArrayList z liczb całkowitych wystarczyłoby w jego przypadku. –

+0

Twoja odpowiedź ma właściwą ogólną ideę. Chciałem po prostu rozwinąć to i nie miałem ochoty zamieszczać mojej odpowiedzi. ;-) –