Autore Topic: IF su valore spinner non si esegue  (Letto 684 volte)

Offline alex_go

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    SonyEricsson Xperia Arc S
  • Sistema operativo:
    Windows 7 32bit
IF su valore spinner non si esegue
« il: 28 Maggio 2012, 23:35:14 CEST »
0
Salve ragazzi, ho controllato un pò gli altri thread sugli spinner ma non mi sembra ci sia qualcosa che faccia al mio caso, quindi ecco che vi pongo il mio problema  :-P

Ho 2 spinner e devo verificarne i valori (entrambi hanno come primo valore una scritta tipo "- seleziona -")
Al click di un pulsante effettuo il controllo di entrambi.

Avevo pensato di fare un semplice IF di controllo sui valori

Codice: [Seleziona]
String valore1 = Spinner1.getSelectedItem();

if (valore1 = "- seleziona -")
{
   Toast.makeText(Benvenuto.this, "Campo 1 non valido\n\n" + valore1 + spinner1.getSelectedItem(),Toast.LENGTH_SHORT).show();

   // ecc ecc                                   
}   



Ma non funziona.. Che sia il primo o qualsiasi altro valore, entra sempre dentro l'IF.

Stessa cosa se provo invece a verificare il numeri di riga:

Codice: [Seleziona]
Integer pos = spinner_tipologia.getSelectedItemId();         <-- oppure   .getSelectedItemPosition()

if (pos == 0);
{
    Toast.makeText(Benvenuto.this, "Campo 1 non valido\n\n" + pos + spinner_tipologia.getSelectedItemId(),Toast.LENGTH_SHORT).show();                                   
    //ecc
}       

Che sia il valore o il numero di riga uguale alla condizione che impongo nell'IF, questo sembra non avere pertinenza ed entra sempre nell'IF.
In sostanza, se è la prima riga ad essere selezionata, mi deve apparire il Toast (come da codice), altrimenti nulla.
Ma anche se non è il primo valore, il Toast mi esce lo stesso.


Non riesco a venirne a capo!
Qualcuno ne sa qualcosa?  :-o

Grazie!  :-)
« Ultima modifica: 28 Maggio 2012, 23:43:51 CEST da alex_go »

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:IF su valore spinner non si esegue
« Risposta #1 il: 28 Maggio 2012, 23:46:34 CEST »
0
Con le String non puoi eseguire un confronto in questo modo:

Codice (Java): [Seleziona]
//Errato
if(valore1 = "- seleziona -")
{
}

devi usare il metodo equals() in questo modo:

Codice (Java): [Seleziona]
if(valore1.equals("-seleziona-") == true)
{
}

Offline pivoide

  • Utente junior
  • **
  • Post: 133
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy tab 10.1
  • Play Store ID:
    codicerosso
  • Sistema operativo:
    Ubuntu 11.04
Re:IF su valore spinner non si esegue
« Risposta #2 il: 28 Maggio 2012, 23:49:22 CEST »
0
E togliere il ; nell' if sulla posizione
Odio l'inglese e per un informatico non è il massimo

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:IF su valore spinner non si esegue
« Risposta #3 il: 28 Maggio 2012, 23:51:58 CEST »
0
E a voler essere pignoli

Codice (Java): [Seleziona]
valore1 = "- seleziona -"
questa sarebbe un'assegnazione, non un confronto  :-)

Codice (Java): [Seleziona]
// == != =
int i = 0;
if(i == 0)
{
}

Offline alex_go

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    SonyEricsson Xperia Arc S
  • Sistema operativo:
    Windows 7 32bit
Re:IF su valore spinner non si esegue
« Risposta #4 il: 29 Maggio 2012, 00:01:09 CEST »
0
GRAZIE MILLE!

Mi ero completamente dimenticato del metodo equals (l'avrò usato qualche volta alle superiore e basta  :-P)

P.S.: per l'assegnazione lo sapevo, ricopiando a mano il codice mi sono scordato il doppio =

Gracias!!  :D