Cambio dinámico en Kotlin

Android Switch también es un elemento de interfaz de usuario de dos estados que se usa para alternar entre ENCENDIDO y APAGADO como un botón. Al tocar el botón, podemos arrastrarlo hacia adelante y hacia atrás para que se encienda o se apague.
El elemento Switch es útil cuando solo dos estados requieren para la actividad elegir ON u OFF. Podemos agregar un Switch al diseño de nuestra aplicación usando el objeto Switch. De forma predeterminada, el estado de Android Switch es el estado APAGADO. También podemos cambiar el estado de Switch a ON configurando android:checked = «true» en nuestro archivo de diseño XML.
En Android, podemos crear el control Switch de dos maneras, ya sea usando Switch en un archivo de diseño XML o creándolo dinámicamente en un archivo Kotlin.
Primero, creamos un nuevo proyecto siguiendo los siguientes pasos: 
 

  1. Haga clic en Archivo, luego en Nuevo => Nuevo proyecto .
  2. Después de eso, incluya el soporte de Kotlin y haga clic en siguiente.
  3. Seleccione el SDK mínimo según su conveniencia y haga clic en el botón siguiente .
  4. Luego seleccione la actividad vacía => siguiente => finalizar .

LinearLayout en el archivo activity_main.xml

En este archivo, usamos LinearLayout y no podemos agregar el widget de interruptor manualmente porque se creará dinámicamente en el archivo Kotlin. 
 

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rootContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">
 
</LinearLayout>

Agregue el nombre de la aplicación en el archivo strings.xml 
Aquí, podemos poner todas las strings que se pueden usar en la aplicación en cualquier archivo. Entonces, actualizamos app_name que se puede ver en la parte superior de la actividad. 
 

XML

<resources>
    <string name="app_name">DynamicSwitchInKotlin</string>
</resources>

Crear interruptores mediante programación en el archivo MainActivity.kt

Aquí, inicializamos y definimos dos interruptores y los agregamos dinámicamente llamando a linearLayout. 
 

linearLayout?.addView(switch1)
linearLayout?.addView(switch2)

luego, configure OnClickListener en ambos interruptores para que funcionen como alternar el botón y el mensaje Toast como este. 
 

switch1.setOnCheckedChangeListener { buttonView, isChecked ->
            val msg = if (isChecked) "SW1:ON" else "SW1:OFF"
            Toast.makeText(this@MainActivity, msg,
                Toast.LENGTH_SHORT).show()
        }

El código completo para el archivo Kotlin se encuentra a continuación. 
 

Kotlin

package com.geeksforgeeks.myfirstkotlinapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.Switch
import android.widget.Toast
 
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        // Creating switch1 and switch2 programmatically
        val switch1 = Switch(this)
        val layoutParams = LinearLayout.LayoutParams(ViewGroup.
            LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
        switch1.layoutParams = layoutParams
        switch1.text = "Switch1"
 
 
        val switch2 = Switch(this)
        val layoutParams2 = LinearLayout.LayoutParams(ViewGroup.
            LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
        switch2.layoutParams = layoutParams2
        switch2.text = "Switch2"
 
        val linearLayout = findViewById<LinearLayout>(R.id.rootContainer)
        // Adding Switches to LinearLayout
        linearLayout?.addView(switch1)
        linearLayout?.addView(switch2)
 
        switch1.setOnCheckedChangeListener { buttonView, isChecked ->
            val msg = if (isChecked) "SW1:ON" else "SW1:OFF"
            Toast.makeText(this@MainActivity, msg,
                Toast.LENGTH_SHORT).show()
        }
 
        switch2.setOnCheckedChangeListener { buttonView, isChecked ->
            val msg = if (isChecked) "SW2:ON" else "SW2:OFF"
            Toast.makeText(this@MainActivity, msg,
                Toast.LENGTH_SHORT).show()
        }
    }
}

Archivo AndroidManifest.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.geeksforgeeks.myfirstkotlinapp">
 
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
 
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
 
</manifest>

Ejecutar como emulador para Salida:

 
 

Publicación traducida automáticamente

Artículo escrito por Praveenruhil 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 *