2011-01-30 9 views
15
login.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if(username_text.getText().toString() == "admin" && 
        pass_text.getText().toString() == "password"){ 

       startActivityForResult(i, ACTIVITY_CREATE); 

      }else{ 
       Toast.makeText(gps_gui.this, "Your username or password is not correct! Please, insert again", 
         Toast.LENGTH_SHORT).show(); 
       clearEditText(); 
      } 
     } 

    }); 

Estoy tratando de verificarlo, encontré que no va a la condición si.obtener Cadena desde EditText

+1

Debe aceptar las respuestas correctas a sus preguntas anteriores. Puede hacer clic en la marca de verificación junto a una respuesta para marcarla como aceptada. – kcoppock

+0

Hice casi la misma prueba exacta, incluso usando los valores como "admin" y "password". ¡Bonito! :) Gracias por hacer esta pregunta! – aikeru

Respuesta

29

Al usar java, debe comparar cadenas utilizando el método String.equals (String). La comparación == verifica si los valores del objeto String son iguales, lo que indudablemente no es así. Tratar de cambiar al ejemplo:

"admin".equals(username_text.getText().toString()) &&"password".equals(pass_text.getText().toString()) 

También es inteligente para poner la cadena estática en primer lugar, en caso de que el valor de cadena del valor que se comprueba es nulo.

+0

Gracias. ¿es sensible a mayúsculas, no? – Yoo

+1

Es sensible a mayúsculas y minúsculas. Como mencionó @msumaithri, puedes usar equalsIgnoreCase como alternativa (aunque no recomendaría que uses contraseñas y nombres de usuario) –

+0

solo agregando para ingenuos como yo si agregas un valor ansi de administrador y un valor de contraseña ansi resulta ser diferente, entonces ... – solti

Cuestiones relacionadas