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);

            }
        });


    }
}

También te podría gustar...

Ads Blocker Image Powered by Code Help Pro

Bloqueador de anuncios detectado

Por favor, desactiva tu bloqueador de anuncios para este sitio web. Sabemos que la publicidad puede resultarte molesta, pero esta es la única manera de mantener la web de forma gratuita y accesible para todo el mundo.