Cómo alternar una variable boolean en Java Android

Muchos me preguntáis cómo se puede alternar una variable boolean en Java sin tener que leer primero el contenido de la misma. En resumidas cuentas… ¿Existe la manera de alternar una variable boolean en una sola línea? La respuesta es sí, y en este artículo lo aprenderás con un sencillo ejemplo práctico. ¡Vamos allá!

Para este ejemplo vamos a utilizar una interfaz que se compone de un TextView para mostrar el estado actual de la variable, y un botón que alterne su estado.

Interfaz para el ejemplo

El código xml de la interfaz es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:text="Alternar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/text" />

</androidx.constraintlayout.widget.ConstraintLayout>

Alternar una variable boolean en Java en una sola línea

Saltamos ahora al archivo MainActivity del proyecto. Creamos una variable tipo boolean de nombre ‘estado’ y le asignamos un valor ‘false’. Recuperamos los objetos de la interfaz y en el evento OnClick del botón lanzaremos la siguiente línea:

estado = estado ? false : true;

Dado que una variable tipo boolean solo puede tener 2 estados (true / false), con esta línea conseguimos alternar el valor actual de la variable ‘estado’, sin necesidad de leer previamente su estado con un ‘IF’. Seguidamente tras alternar la variable volvemos a mostrar el estado en el TextView.

Código Java completo

public class MainActivity extends AppCompatActivity {

    private TextView textView;
    private Button btnAlternar;
    private boolean estado;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        estado = false;

        textView = findViewById(R.id.text);
        btnAlternar = findViewById(R.id.button);

        textView.setText("Estado: " + estado);

        btnAlternar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                estado = estado ? false : true;
                textView.setText("Estado: " + estado);

            }
        });


    }
}

Mario Camí

Desarrollador de aplicaciones Android. Amante de todo lo Open Source, de los videojuegos y nuevas tecnologías. En mi tiempo libre comparto todo lo aprendido y lo que aprendo en el desarrollo de Android a modo de artículo en el blog. La información nos hará libres!

También te podría gustar...