Oppure

Loading
04/11/09 20:09
Ture_70
Salve, stò sviluppando (o almeno ci provo) a sviluppare piccole applicazioni per cellulari, quello che vi chiedo è un istruzione basilare del java, spero possiate aiutarmi. Vi posto il codice:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class applicazione extends MIDlet implements CommandListener {
  private Display display; 
  private TextBox textbox; 
  private Command submit; 
  private Command exit; 
  
  public applicazione() {
     display = Display.getDisplay(this);
     submit = new Command("Submit", Command.SCREEN, 1);
     exit = new Command("Exit", Command.EXIT, 1);
     textbox = new TextBox("Nome", "", 30, TextField.ANY);
     textbox.addCommand(exit);
     textbox.addCommand(submit);    
     textbox.setCommandListener(this);   
    }

  public void startApp() {
     display.setCurrent(textbox);
    }
  
  public void pauseApp() { 
    }
  
  public void destroyApp(boolean unconditional) { 
    }

  public void commandAction(Command command, Displayable displayable) {
   if (command == submit) {
       if (textbox.getString() == "Carlo") {
       textbox.setString("Uguale");           // è qui l' errore?
       }
       else if (textbox.getString() != "Carlo") {
       textbox.setString("Diverso");
       textbox.removeCommand(submit);
       }
   }
   else if (command == exit) {
      destroyApp(false);
      notifyDestroyed();
   }
  }
}


Perche qualsiasi cosa inserisca il testo della textbox è sempre "Diverso"? Potreste dirmi dove sbaglio? grazie 1000
aaa
04/11/09 20:22
gio97
Dovresti usare il metodo isEqual, o una roba simile. È un metodo degli oggetti String che confronta la stringa passata per parametro e restituisce un valore booleano che dice se le due stringhe sono uguali, non si può usare come in C++ l'operatore di uguaglianza.
Ultima modifica effettuata da gio97 04/11/09 20:23
aaa
04/11/09 21:51
lorenzo
Postato originariamente da gio97:

non si può usare come in C++ l'operatore di uguaglianza.


scusa e da quando in C++ si può usare l'operatore di uguaglianza per le stringhe??? La classe string non espone nessun operator== mentre le gli array di char * non per parliamo neanche...
Ultima modifica effettuata da lorenzo 04/11/09 21:51
aaa
05/11/09 6:08
gio97
Nella classe string del C++ l'operatore == è ridefinito, guarda qua: cplusplus.com/reference/string/operators/.
Comunque è :ot:. E gli array di char sono tipici del C, non del C++.
Ultima modifica effettuata da gio97 05/11/09 6:08
aaa
05/11/09 10:48
TheKaneB
prova così:

if (textBox.getString().equals("Ciao"))
{
   // ecc...
}
aaa