Autore Topic: recuperare l'item selezionato nello spinner, caricato da database  (Letto 1307 volte)

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
0
Salve a tutti!
ho creato uno spinner "riempito" con dati presi da un database, con un adapter.
Quando l'utente seleziona un item succede un qualcosa! Per prima cosa devo recuperare quale item l'utente ha selezionato.
Per far ciò si utilizza il onitemselected, il suo terzo parametro:
Codice (Java): [Seleziona]
public void onItemSelected(AdapterView<?> parent,
                    View view, int pos, long id) {
                  Toast.makeText(parent.getContext(),"l'elemento selezionato e' " +
                      parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
}
cioè ciò che interessa è   parent.getItemAtPosition(pos).toString();
Peccato che sia col toString() che senza, mi dà l'indirizzo del cursore,.... cioà android.sqlitedatabase...e altro che non mi ricordo  :-P
Che potrei fare , cosa potrei usare, per avere l'elemento, la stringa, selezionata?
Grazie in anticipo!

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:recuperare l'item selezionato nello spinner, caricato da database
« Risposta #1 il: 27 Gennaio 2011, 21:07:01 CET »
0
allora facendo un pò di prove:
parent.getItemAtPosition(pos).toString()   restituisce un cursore
quindi ho pensato di:
((Cursor)parent.getItemAtPosition(pos)).getColumnIndex(MyDatabase.LoginMetaData.ID)
ovvero castarlo a cursore e utilizzare i suoi metodi per ritornare il nome selezionato. peccato però che un metodo simile a ciò che richiedo sembra che non c'è. ci sono solo metodi per reperire degli indici... e se metto getString() al posto di getColumnIndex() non và, lavora solo su int o long....  :-(    che faccio?

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:recuperare l'item selezionato nello spinner, caricato da database
« Risposta #2 il: 27 Gennaio 2011, 21:18:01 CET »
+1
allora facendo un pò di prove:
parent.getItemAtPosition(pos).toString()   restituisce un cursore
quindi ho pensato di:
((Cursor)parent.getItemAtPosition(pos)).getColumnIndex(MyDatabase.LoginMetaData.ID)
ovvero castarlo a cursore e utilizzare i suoi metodi per ritornare il nome selezionato. peccato però che un metodo simile a ciò che richiedo sembra che non c'è. ci sono solo metodi per reperire degli indici... e se metto getString() al posto di getColumnIndex() non và, lavora solo su int o long....  :-(    che faccio?
prendi il getColumnIndex e una volta che hai il column index lo passi al getString. Guardati i tutorial su come usare i cursor in questo forum
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline darkmax

  • Utente junior
  • **
  • Post: 63
  • Respect: 0
    • Mostra profilo
    • Emoe - Agenzia di comunicazione Torino
  • Dispositivo Android:
    Samsung Galaxy S 3
  • Sistema operativo:
    Mac OS X
Re:recuperare l'item selezionato nello spinner, caricato da database
« Risposta #3 il: 08 Maggio 2012, 16:45:46 CEST »
0
Ciao,
avresti un esempio di come popolare uno spinner con dati presi da db?