Android Bind Spinner alla class

Ho qualche problema con il widget di Spinner. Dato il seguente codice:

ArrayList<Person> people= new ArrayList<Person>(); Person = null; for(int i = 0; i!= 10; i++) { p = new Person(); s.setID(i); s.setName("Name " + i); people.add(s); } 

Sto utilizzando il seguente codice per legarlo ad un Spinner:

  • come utilizzare getListView () in Attività?
  • Come spiegare quando l'object AudioTrack ha terminato la riproduzione?
  • Le tabs non sono adatte alla schermata con tabmode = scorrimento, anche con un layout di tabulazione personalizzato
  • Ionic2 performance issue
  • Crea applicazione di notifica in Android?
  • JavaCV + Android Studio + grado-ansible?
  •   Spinner spinner1 = (Spinner) findViewById (R.id.spinner); ArrayAdapter<Person> adapter = new ArrayAdapter<Person>(this, android.R.layout.simple_spinner_item, people); spinner1.setAdapter(adapter); 

    Quello che vorrei è che il valore (id) sia nascosto, ma passato quando selezionato, e il nome da visualizzare. Qualsiasi aiuto è apprezzato.

    Grazie.

  • Espresso - Esegui l'azione non riesce all'attività a schermo integer - InjectEventSecurityException
  • Chiamata automatica della casella di controllo su CheckedChange quando scorrimento listview scroll?
  • Perché LocationManager non dispone di una posizione lastKnown?
  • Aggiunta di text dal field di modifica del text a un'email
  • Gradle: DefaultAndroidSourceDirectorySet a File con il metodo toString () è stato deprecato
  • Le transizioni di attività / frammenti sono compatibili con i dispositivi pre-Lollipop?
  • 2 Solutions collect form web for “Android Bind Spinner alla class”

    Se capisco la tua domanda correttamente, vorresti che il nome venga visualizzato nella vista a discesa dello spinner. Quando viene selezionato un elemento, si desidera restituire l'ID.

    Ci sono due modi in cui si può avvicinarsi.

    Il modo più semplice è quello di implementare un toString () che restituisce il nome nell'object Person. L'ArrayAdapter restituirà questo valore quando si legano i valori di text dell'object alla vista a discesa. Quindi nella tua attività puoi impostare l'onItemClickListener per Spinner e call l'adapter.getItemAtPosition (posizione) per recuperare l'object Person. Dall'object che tu puoi get il tuo id.

    Il secondo approccio è quello di estendere l'ArrayAdapter ed implementare i methods getView e getDropDownView e getItem. Il getView è responsabile della creazione delle righe che vedi quando fai clic sul filatore. Il getDropDownView è responsabile della creazione della vista che vedi nel filatore. E il metodo getItem restituirà l'object o nel tuo caso l'id in quella posizione specificata. Dovresti associare il nome dell'elemento Person a una visualizzazione di text nei methods getView e getDropDownView. Dopo aver creato il tuo ArrayAdapter personalizzato, devi impostare l'onItemClicKListener per il Spinner e gestirlo come ho già detto.

    Il primo approccio è semplice, ma il secondo approccio è molto superiore e darà un controllo molto maggiore sul vostro adattatore, soprattutto quando si inizia a sviluppare qualcosa di molto più complesso.

    Spero possa aiutare.

    post molto vecchio – è venuto incontro cercando qualcos'altro – ha sentito un errore (probabilmente solo la sorveglianza)

    jagsund è per lo più giusto, accetta, ha ottenuto la definizione di getView e GetDropDownView sbagliato – in realtà è l'opposto di quello che ha detto: getView mostra il contenuto all'interno del controllo della filatura, getDropDownView crea le righe di visualizzazione che vedi quando fai clic sul filatore.

    Quindi, a less che non fai clic sul filatore, getDropDownView non verrà persino chiamato – vedrai questo se sovrascriverai ArrayAdapter

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.