CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: complicazio con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 11 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

Spinner per selezionare degli elementi

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Oct 2010
    Messaggi
    4

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Spinner per selezionare degli elementi

    Allora, il mio problema è questo, ho creato due spinner, con una serie di valori.
    Siccome sto facendo delle scritture su un DB, ho bisogno di sapere esattamente quale valore dello spinner ho selezionato. Cioè se sono in modifica di un record già scritto, riesco ad inizializzare lo spinner in modo che visualizzi il valore scelto, ma in caso di inserimento, devo controllare che venga selezionato un valore che non deve essere il primo elemento dello spinner.

    Riporto il codice:

    questo nel onCreate
    myCodiceSpesa.setOnItemSelectedListener(codicespes aListner);
    myCodiceSpesa.setAdapter(adapter);
    myCodiceSpesa.setSelected(false);

    e poi ho definito sotto questo....
    private Spinner.OnItemSelectedListener codicespesaListner = new Spinner.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
    CodiceSpesa = position + 1;
    }
    public void onNothingSelected(AdapterView<?> parent) {
    CodiceSpesa = -1;
    }
    };

    mi entra nell'onItemSelected anche in fase di caricamento...
    pertanto mi riporta come minimo sempre il primo elemento....

    Poi vorrei fare una seconda domanda... E' possibile associare più di un campo allo spinner... cioè invece di essere obbligato ad avere dei codici sequenziali, poter immettere il codice in una variabile, una schiera, insomma da qualche parte alla quale poi posso accedere?

    Grazie in anticipo per le informazioni...

  2.  
  3. #2
    Senior Droid L'avatar di Cymon


    Registrato dal
    Jul 2010
    Messaggi
    419

    Ringraziamenti
    7
    Ringraziato 43 volte in 42 Posts
    Predefinito

    Vorrei capire una cosa... se modifico un oggetto nello spinner compare, mi sembra di capire, il codice dell'oggetto.
    Se invece ho un oggetto nuovo lo spinner deve rimanere vuoto.
    Ma allora l'utente lo spinner per cosa lo usa? In che scenario ha senso cambiare il valore?
    Per quello che chiedi, se l'activity con lo spinner è invocata nel moment in cui è già noto se si tratta di nuovo elemento o modifica puoi anche distruggere lo spinner a creazione del form di inserimento nel caso in cui questo non serve/è dannoso da usare. Ovviamente, parimenti, nel momento in cui andrai a scrivere su DB, vedrai se usare il getSelectedItem o no sulla base del medesimo flag.
    Però ho paura che mi sto perdendo qualche pezzo rispetto quello che vuoi realizzare.

    E' possibile associare più di un campo allo spinner... cioè invece di essere obbligato ad avere dei codici sequenziali, poter immettere il codice in una variabile, una schiera, insomma da qualche parte alla quale poi posso accedere?
    Anche qui la domanda non mi è chiara... comunque nutrendo lo spinner con un adapter custom scritto da te puoi fare in modo che la selezione ritorni quello che vuoi... numeri... oggetti... pere... banane*



    *No, aspetta, se riesci con le pere e le banane dimmelo che diventi il mio eroe
    La mia katana: Slackware 13.1
    La mia wakizashi: Acer A1 Liquid con Android 2.1 Eclair
    Il mio sito: Follow the rabbit (con la sua App )

  4. #3
    Baby Droid


    Registrato dal
    Oct 2010
    Messaggi
    4

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Lo scenario è questo:
    una procedura di inserimento di record in un db...
    Nel record, c'è un campo che fa riferimento ad un'altra tabella.
    Quando carico l'Activity, mi deve riempire lo spinner con i dati della seconda tabella, e questo lo fa.
    Se sono in aggiornamento, posso voler cambiare il valore di riferimento, oppure lasciare quello selezionato. Comunque mi deve selezionare l'elemento dello spinner corrispondente al record che sto modificando... e questo mi funziona.

    In caso di inserimento di un nuovo record, come già detto, carico la tabella nello spinner, ma l'utente deve selezionare un elemento dello spinner, sempre obbligatoriamente. Se non lo seleziono, non mi deve prendere di default il primo elemento, ma mi deve segnalare con un alert che non ho selezionato nulla.

    Per la seconda domanda, ho trovato una soluzione su internet.... e la adotterò.... usando una classe custom...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy