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".
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 <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>
Hola
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
Cita de: DoeJohn en 9 Noviembre 2019, 12:21 PM
Hola
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