¿Cómo agregar interruptor en Android ActionBar?

En Android, Switch es un widget de interruptor de palanca de dos estados que se usa para seleccionar una opción entre dos opciones. Generalmente es un botón de encendido/apagado que indica el estado actual del interruptor. Funciones básicas normales para las que se puede usar el interruptor en ActionBar de la aplicación:

  • Para cambiar al modo oscuro o al modo claro en la aplicación.
  • Para activar o desactivar los servicios de la aplicación.
  • Para activar/desactivar Bluetooth o funciones relacionadas con los medios, etc.

Ahora veamos la implementación paso a paso para hacerlo.

Implementación paso a paso

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.

Paso 2: Vaya a «res» y cree un nuevo directorio y asígnele el nombre «menú»

Consulte este artículo Crear carpeta de menú y archivo de menú en Android Studio y cree un nuevo archivo de recursos de menú y asígnele el nombre » action_menu «. Además, vaya a diseño y cree un nuevo archivo de recursos de diseño y asígnele el nombre » use_switch «.

Paso 3: abra el archivo action_menu.xml y use el siguiente código en él

XML

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/switch_action_bar"
        android:title="Switch"
        app:actionLayout="@layout/use_switch"
        app:showAsAction="always" />
</menu>

Paso 4: abra el archivo use_switch.xml y use el siguiente código en él

XML

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  
    <Switch
        android:id="@+id/switch2"
        android:layout_width="63dp"
        android:layout_height="58dp"
        android:padding="6dp"
        android:scaleX="1.3"
        android:scaleY="1.3"
        android:switchMinWidth="40dp"
        android:textSize="8sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.001" />
      
</androidx.constraintlayout.widget.ConstraintLayout>

Paso 5: trabajar con el archivo activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo  activity_main.xml .

XML

<?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">
  
    <!-- you can use any image according to you -->
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.434"
        app:srcCompat="@drawable/gfgimage" />
  
    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toTopOf="@+id/imageView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.918"
        app:srcCompat="@drawable/gfgimage" />
      
</androidx.constraintlayout.widget.ConstraintLayout>

Paso 6: trabajar con el archivo MainActivity.java

Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java

Java

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.Toast;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
    }
  
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.action_menu, menu);
        MenuItem itemswitch = menu.findItem(R.id.switch_action_bar);
        itemswitch.setActionView(R.layout.use_switch);
          
        final Switch sw = (Switch) menu.findItem(R.id.switch_action_bar).getActionView().findViewById(R.id.switch2);
         
        sw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    Toast.makeText(MainActivity.this, "Switch is working", Toast.LENGTH_SHORT).show();
                }
            }
        });
        return true;
    }
}

Producción:

Por lo tanto, desarrollamos una aplicación en la que podemos usar el interruptor en la barra de acción de la aplicación para implementar funciones básicas de una aplicación. El mismo proceso se puede aplicar en cualquier otra aplicación para agregar un interruptor en ActionBar y se puede usar para implementar cualquier función según la necesidad de la aplicación. 

Publicación traducida automáticamente

Artículo escrito por jangirkaran17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *