elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Android] Como puedo obtener el item en un string para comparar en el if?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Android] Como puedo obtener el item en un string para comparar en el if?  (Leído 3,177 veces)
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
[Android] Como puedo obtener el item en un string para comparar en el if?
« en: 8 Noviembre 2019, 17:37 pm »

Estoy intentando lanzar una nueva actividad si se eligue la opción con el valor "Motor De Busqueda". No sé como acceder al string que contiene este valor.
Básicamente quiero que esta línea de código funcione:
if (value == "Motor De Busqueda")

No funciona y probé de varias formas como usando .toString(), setText(), getText(), etc.

Tengo un textView al que llamo url y si uso url.setText(value); si que me pone el texto "Motor De Busqueda" en el textView. En cambio en el if no consigo detectar si se eligió "Motor De Busqueda".



Código
  1. listView=(ListView)findViewById(R.id.listView);  
  2.        textView=(TextView)findViewById(R.id.textView);  
  3.        listItem = getResources().getStringArray(R.array.array_lista_menu);  
  4.        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,  
  5.                android.R.layout.simple_list_item_1, android.R.id.text1, listItem);  
  6.        listView.setAdapter(adapter);  
  7.  
  8.        listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
  9.   {  
  10.            @Override  
  11.            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l)
  12.      {    
  13.                 String value=adapter.getItem(position);  
  14.                Toast.makeText(getApplicationContext(),value,Toast.LENGTH_SHORT).show();  
  15.  
  16.       url.setText(value);
  17.  
  18.  
  19. if (value == "Motor De Busqueda")
  20. {
  21.  
  22. intentMotorDeBusq = new Intent(MainActivity.this,ActividadMotorDeBusqueda.class);
  23.  
  24. startActivity(intentMotorDeBusq);
  25.  
  26. }          
  27.  
  28.       }
  29.   });

En el strings.xml
Código
  1. <string-array name="array_lista_menu">  
  2.        <item>Motor De Busqueda</item>  
  3.        <item>Codigo fuente</item>  
  4.        <item>Guardar Pagina</item>
  5.        <item>Interfaz</item>  
  6.        <item>Historial</item>  
  7.        <item>Tecnologías</item>  
  8.        <item>Compartir</item>  
  9.        <item>Acerca De</item>  
  10.        <item>Buscar</item>  
  11.        <item>Vista de Ordenador</item>  
  12.        <item>Favoritos</item>  
  13.        <item>Salir</item>  
  14.    </string-array>


En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Becerra

Desconectado Desconectado

Mensajes: 97


Siempre aprendiendo


Ver Perfil
Re: [Android] Como puedo obtener el item en un string para comparar en el if?
« Respuesta #1 en: 9 Noviembre 2019, 12:21 pm »

Hola


Código
  1. if (value == "Motor De Busqueda")

¿No será por la comparación? Hace mucho mucho que no uso java, pero creo que las cadenas no se comparan con ==, tienes que usar equals o compareTo.

Un saludo


En línea

Buenas preguntas obtienen mejores respuestas
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: [Android] Como puedo obtener el item en un string para comparar en el if?
« Respuesta #2 en: 9 Noviembre 2019, 17:17 pm »

Hola


Código
  1. if (value == "Motor De Busqueda")

¿No será por la comparación? Hace mucho mucho que no uso java, pero creo que las cadenas no se comparan con ==, tienes que usar equals o compareTo.

Un saludo
Acabo de buscar: We can use == operators for reference comparison (address comparison) and .equals() method for content comparison. In simple words, == checks if both objects point to the same memory location whereas .equals() evaluates to the comparison of values in the objects.

No sabía esta diferencia. Gracias
En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines