Autore Topic: Problema gestione spinner  (Letto 844 volte)

Offline studionovesei

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
Problema gestione spinner
« il: 18 Giugno 2011, 12:00:14 CEST »
0
Ciao a tutti, sono nuovo del mondo android, avrei una questione da porre.

Allora io ho uno SPINNER che si popola attraverso un array

Codice (XML): [Seleziona]
<string-array name="opt_weather">
        <item>Sunny</item>
        <item>Partial Cloudy</item>
        <item>Cloudy</item>
        <item>Rainy</item>
</string-array>

Quando uno sceglie la sua opzione questa viene salvata sul DataBase come stringa.
1) c'è la possibilità di salvare l'opzione come indice dell'array? nel senso che se scelgo Cloudy invece di scrivere Cloudy nel DB mi scrive 2

2)Nel caso si potesse scrivere sul DB l'indice quando vado a riaprire la view per modificarlo come faccio a impostare Come opzione preselezionata quella del relativo indice?

Se invece non posso risalire all'indice c'è modo di preselezionare l'opzione partendo dal valore della stringa?

Grazie a tutti!
« Ultima modifica: 20 Giugno 2011, 14:16:36 CEST da Ricky`, Reason: tasto code »

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Problema gestione spinner
« Risposta #1 il: 20 Giugno 2011, 11:50:04 CEST »
0
Quando selezioni l'opzione, immagino che tu abbia un clicklistener associato.
Com'è fatto questo clicklistener?

Cominciamo da quì.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline studionovesei

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
Re:Problema gestione spinner
« Risposta #2 il: 20 Giugno 2011, 14:59:12 CEST »
0
allora, premetto che ho già risolto nel senso che funziona ma non so se è il metodo giusto.
Io non uso nessun clic listener sullo spinner.
cerco di farti capire come ho fatto:

Array delle option
<string-array name="opt_weather">
        <item>Sunny</item>
        <item>Partial Cloudy</item>
        <item>Cloudy</item>
        <item>Rainy</item>
</string-array>

ACTIVITY di inserimento dati :

Dichiarazione dello spinner nel layout di inserimento
<Spinner  android:id="@+id/S_weather" android:layout_width="120px" android:entries="@array/opt_weather" style="@style/spinner_sel"></Spinner>

Con il tasto salva inserisco il record con i vari campi tra cui appunto il campo INTEGER con il numero prelevato dallo spinner.
final Spinner S_weather = (Spinner) findViewById(R.id.S_weather);
final int weather= S_weather.getSelectedItemPosition(); //prendo la posizione dell'item selezionato



ACTIVITY di lettura e modifica dati :
final Spinner S_weather = (Spinner) findViewById(R.id.S_weather);
S_weather .setSelection(cursor.getInt(cursor.getColumnIndex(NewLogMetaData.WEATHER_KEY)));
Con un pulsante faccio l'update dei record con la lettura dei data uguale a sopra


Mi è sembrato piuttosto semplice, da farmi sorgere qualche dubbio che non si nascondesse qualche problema, ma facendo diverse prove non ho riscontrato nessun errore.