EditarTexto sensible a mayúsculas

et = (EditText) findViewById(R.id.editText1); iv = (ImageView) findViewById(R.id.imageView1); Case R.id.ibGo: String str = et.getText().toString(); if (str.contentEquals("password")){ Intent levelTwo = new Intent ( "com.xxx.xxx.LEVELTWO"); startActivity(levelTwo); } else if (str.contentEquals("music")){ Intent levelFour = new Intent ( "com.xxx.xxx.LEVELFOUR"); startActivity(levelFour); } else { vib.vibrate(300); iv.setVisibility(View.VISIBLE); } break; 

Cuando escribo "contraseña" en el edittext en el emulador, el emulador funciona como se esperaba. Pero cuando i (por ejemplo) escribe "Contraseñas" (Capital P) la aplicación se detiene inesperadamente.

¿Qué puedo hacer para que no falle en mayúsculas?

Las cadenas distinguen entre mayúsculas y

En lugar de

 if (str.contentEquals("password")){ //do something } 

¡¡HACER ESTO!!

 if (str.equalsIgnoreCase("password")){ //do something } 

Creo que su pregunta y su problema son dos cosas diferentes, así que:

¿Qué puedo hacer para que no reaccione a las mayúsculas, las maneras de hacer que no tenga sentido?

Puede utilizar equalsIgnoreCase ( str.equalsIgnoreCase("password") ) para que el caso de comparación sea insensible, pero creo que su problema está aquí:

Pero cuando por ejemplo escribo "Contraseñas" (Capital P) la aplicación se detiene inesperadamente.

Esto es probablemente debido a un problema en el bloque else , parece que vib o iv son nulos.

  • If-else trabajando, no cambie
  • ¿Cómo comprobar el idioma de un dispositivo en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.