Foro de elhacker.net

Programación => Java => Mensaje iniciado por: @XSStringManolo en 8 Noviembre 2019, 17:37 pm



Título: [Android] Como puedo obtener el item en un string para comparar en el if?
Publicado por: @XSStringManolo 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>


Título: Re: [Android] Como puedo obtener el item en un string para comparar en el if?
Publicado por: Becerra 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


Título: Re: [Android] Como puedo obtener el item en un string para comparar en el if?
Publicado por: @XSStringManolo 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