¿Cómo generar un número aleatorio a partir de un rango en Android?

En Android, existen múltiples bibliotecas que brindan funciones matemáticas y lógicas a los desarrolladores para crear aplicaciones significativas. Una de esas funciones es la función aleatoria que genera un valor aleatorio. Sin embargo, podemos personalizar esta función para no solo encontrar un valor aleatorio, sino encontrarlo a partir de un rango de números. Entonces, en este artículo, le mostraremos cómo podría generar un valor aleatorio en un rango en Android. Siga los pasos a continuación una vez que el IDE esté listo.

Implementación paso a paso

Paso 1: crea un nuevo proyecto en Android Studio

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Demostramos la aplicación en Kotlin, así que asegúrese de seleccionar Kotlin como idioma principal al crear un nuevo proyecto.

Paso 2: 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 . Agregue dos EditText para proporcionar dos entradas de números (rango de inicio y final), un TextView para mostrar el resultado y un botón para ejecutar el proceso.

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    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">
  
    <EditText
        android:id="@+id/edit_text_1"
        android:layout_width="100sp"
        android:layout_height="50sp"
        android:layout_toStartOf="@id/button_1"
        android:layout_above="@id/button_1"
        android:layout_marginBottom="20sp"
        android:inputType="number"
        android:hint="Min."/>
  
    <EditText
        android:id="@+id/edit_text_2"
        android:layout_width="100sp"
        android:layout_height="50sp"
        android:layout_toEndOf="@id/button_1"
        android:layout_above="@id/button_1"
        android:layout_marginBottom="20sp"
        android:inputType="number"
        android:hint="Max."/>
  
    <Button
        android:id="@+id/button_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="click"
        android:layout_centerInParent="true"/>
  
    <TextView
        android:id="@+id/text_view_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="40sp"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:layout_below="@id/button_1"
        android:layout_marginTop="20sp"
        android:hint="Result"/>
  
</RelativeLayout>

Paso 3: trabajar con el archivo MainActivity.kt

Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle.

Kotlin

package org.geeksforgeeks.generaterandomnumber
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import java.util.*
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and Initializing the EditText, 
        // Button and TextView from the layout file
        val mEditText1 = findViewById<EditText>(R.id.edit_text_1)
        val mEditText2 = findViewById<EditText>(R.id.edit_text_2)
        val mButton = findViewById<Button>(R.id.button_1)
        val mTextView = findViewById<TextView>(R.id.text_view_1)
  
        // On button click, min and max value is fetched 
        // from the EditText and a Random value is generated
        mButton.setOnClickListener {
            val minVal = mEditText1.text.toString().toInt()
            val maxVal = mEditText2.text.toString().toInt()
  
            // For Kotlin>=1.3
            // Inclusive of min and max value
            val mResult = (minVal..maxVal).random() 
  
            // For Kotlin<1.3
            // mResult = Random().nextInt(maxVal + 1 - minVal) + minVal
  
            // Random value is displayed in the TextView
            mTextView.text = mResult.toString()
        }
    }
}

Producción:

Puede ver que cuando se hace clic en el botón, se genera un número aleatorio y se muestra en TextView.

Publicación traducida automáticamente

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