[Android] Como puedo obtener el item en un string para comparar en el if?

Iniciado por @XSStringManolo, 8 Noviembre 2019, 17:37 PM

0 Miembros y 1 Visitante están viendo este tema.

@XSStringManolo

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 (java) [Seleccionar]
listView=(ListView)findViewById(R.id.listView); 
        textView=(TextView)findViewById(R.id.textView); 
        listItem = getResources().getStringArray(R.array.array_lista_menu); 
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
                android.R.layout.simple_list_item_1, android.R.id.text1, listItem); 
        listView.setAdapter(adapter); 
 
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
   { 
            @Override 
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l)
      {   
                 String value=adapter.getItem(position); 
                Toast.makeText(getApplicationContext(),value,Toast.LENGTH_SHORT).show(); 
               
       url.setText(value);

       
if (value == "Motor De Busqueda")
{

intentMotorDeBusq = new Intent(MainActivity.this,ActividadMotorDeBusqueda.class);

startActivity(intentMotorDeBusq);

}           
               
       }
   });


En el strings.xml
Código (xml) [Seleccionar]
<string-array name="array_lista_menu"> 
        <item>Motor De Busqueda</item> 
        <item>Codigo fuente</item> 
        <item>Guardar Pagina</item>
        <item>Interfaz</item> 
        <item>Historial</item> 
        <item>Tecnologías</item> 
        <item>Compartir</item> 
        <item>Acerca De</item> 
        <item>Buscar</item> 
        <item>Vista de Ordenador</item> 
        <item>Favoritos</item> 
        <item>Salir</item> 
    </string-array>


Becerra

Hola


Código (java) [Seleccionar]
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
Buenas preguntas obtienen mejores respuestas

@XSStringManolo

Cita de: DoeJohn en  9 Noviembre 2019, 12:21 PM
Hola


Código (java) [Seleccionar]
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