Autore Topic: Spinner  (Letto 562 volte)

Offline killer

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Windows 7
Spinner
« il: 05 Dicembre 2012, 09:50:56 CET »
0
Buongiorno a tutti,
sto utilizzando in un form il componente "Spinner".
La scelta è ricaduta su tale componente perchè voglio che l'utente non debba scrivere, ma scegliere fra opzioni precedentemente stabilite.
L'applicazione lavora con un ContentProvider in cui scrivo le informazioni inserite dall'utente.
L'utente dopo aver inserito un record (una chiamata) può modificare le informazioni salvate: ha un pulsante "Aggiorna" attraverso cui chiama un'altra activity.
Ora il problema.
Quando clicco sul pulsante "Aggiorna" perdo il riferimento al DB sui componenti Spinner.
Su altri widgets (TextView, AutoCompleteTextView) ciò non accade.
Per il campo "Data" (TextView) ad esempio:

dataEdit.setText(cursor.getString(cursor.getColumnIndex(ChiamataMetaData.DATA)));

e non ho problemi (conserva e mi fa vedere il valore precedentemente stabilito).

Per il campo destinatario (Spinner) invece (il metodo .setText non è previsto per lo Spinner):

destinatarioEdit.setSelection(cursor.getColumnIndex(ChiamataMetaData.DESTINATARIO));

dove, quando premo su "Aggiorna", mi propone un contenuto che non corrisponde con quello atteso (e corretto).

Temo che il problema risieda nel fatto che lo spinner utilizzi una risorsa di tipo XML per i suoi "item".

Poi...
Esiste la maniera di impostare l'hint per lo spinner?
Sulla letteratura e su Web fanno riferimento tutti a "prompt", ma non funziona...  :-(

Come posso risolvere?
Grazie a tutti


Offline killer

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Windows 7
Re:Spinner
« Risposta #1 il: 05 Dicembre 2012, 12:46:37 CET »
0
Impostando le cose in questo modo:

destinatarioEdit.setSelection(cursor.getColumnIndex(ChiamataMetaData.DESTINATARIO));

visualizza uno degli item previsti...
Ma non quello corretto!
Help :'(

Offline killer

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Windows 7
Re:Spinner
« Risposta #2 il: 06 Dicembre 2012, 11:37:13 CET »
+1
Dopo due giorni (e gran parte delle notti) di tentativi ho risolto.
Vi posto la soluzione nel caso in cui qualcuno si scontra con il mio stesso problema.
Codice (XML): [Seleziona]
String tipo = cursor.getString(cursor.getColumnIndex(ChiamataMetaData.DESTINATARIO));
destinatarioEdit.setSelection(adapter_destinatario.getPosition(tipo));

Come potete notare alla "setSelection" dello spinner va dato, come argomento, l'adapter che punta alla posizione dell'oggetto in DB.
Saluti e buon lavoro