2013-01-09 11 views
6

Quando normalmente si popola uno Spinner come ho fatto in passato, normalmente utilizzo uno SpinnerAdapter, quindi normalmente gli elementi nelle risorse lo popolano.Come riempire Spinner con valore int

Attualmente ho una query diversa, nel codice ho un input utente per un int e voglio che il mio spinner compaia con i numeri fino al numero selezionato dall'utente. Quindi se l'utente inserisce il numero '5' viene salvato in una variabile int. Allora voglio che lo Spinner mostri 1,2,3,4,5 come scelte.

Non sono davvero sicuro di come mi avvicinerei a questo.

Grazie, Oli

+0

http://stackoverflow.com/questions/5999262/populate-spinner-dynamically-in-android-from-edit-text Utilizzare un adattatore .. –

risposta

23

cura

Di seguito è riportato un esempio di base di come si dovrebbe aggiungere interi al vostro filatore:

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

è possibile fare riferimento a questo e fare i cambiamenti nella vostra progetto secondo la tua logica. Inoltre nel tuo caso dovresti usare un ArrayList di interi poiché il numero di scelta dell'utente sembra dinamico. è possibile creare un array e sostituirlo con l'array Integer nel codice precedente.

Spero che questo aiuti !!

+0

Se non si conosce il numero massimo al momento della compilazione, può creare la matrice 'items' in fase di esecuzione (es.' Integer [] items = new Integer [size]; 'e un ciclo for per popolare la matrice). In questo caso, potrebbe essere più facile usare un 'List' e' ListAdapter'. –

+0

Ho appena dato l'esempio e poi mi sono reso conto che l'input è dinamico. Ho appena modificato la mia risposta. Una lista Array di interi sarebbe sufficiente nel suo caso. –

+0

La tua risposta ha la giusta idea generale. Volevo solo espanderci e non mi sentivo di pubblicare una mia risposta. ;-) –