Barra de clasificación dinámica en Kotlin

Android RatingBar es un widget de interfaz de usuario que se utiliza para obtener la calificación de los clientes o usuarios. Es una extensión de SeekBar y ProgressBar que muestra calificaciones de estrellas y permite a los usuarios dar la calificación haciendo clic en las estrellas.

En RatingBar, podemos establecer el tamaño del paso usando android:stepSize y siempre devolverá un valor de calificación como un número de punto flotante como 1.0, 2.0, 2.5, etc. Al usar el atributo android:numStars podemos especificar el número de estrellas en RatingBar . RatingBar se utiliza para obtener calificaciones de los usuarios o clientes sobre el producto, la película o la experiencia del hotel, etc.

RatingBar se puede crear de forma manual o mediante programación, pero vamos a discutir sobre la programación o la dinámica .

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 .

Modifique el archivo activity_main.xml

En este archivo, usamos LinearLayout y configuramos sus atributos como id, padding, etc. y se puede acceder en el archivo Kotlin usando id.

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:context=".MainActivity"
    android:orientation="vertical"
    android:paddingLeft="35dp"
    android:paddingTop="50dp">
  
</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">DynamicRatingBarInKotlin</string>
</resources>

Creación de RatingBar en el archivo MainActivity.kt

En primer lugar, declaramos la variable rBar para crear RatingBar y establecer sus atributos usándola.

 
val rBar = RatingBar(this)
        val layoutParams = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        rBar.layoutParams = layoutParams
        rBar.stepSize = 1.0.toFloat()
        rBar.numStars = 5

luego, declaramos otra variable para crear un botón como este

val button = Button(this)
        val layoutParams1 = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        button.text="Submit Rating"

Después de esto, RatingBar y el botón se agregaron al LinearLayout usando las declaraciones

linearLayout?.addView(rBar)
linearLayout?.addView(button)

Kotlin

package com.geeksforgeeks.myfirstkotlinapp
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.ViewGroup
import android.widget.Button
import android.widget.LinearLayout
import android.widget.RatingBar
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Create RatingBar
        val rBar = RatingBar(this)
        val layoutParams = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        rBar.layoutParams = layoutParams
        rBar.stepSize = 1.0.toFloat()
        rBar.numStars = 5
  
        //create button
        val button = Button(this)
        val layoutParams1 = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        button.text="Submit Rating"
  
  
        val linearLayout = findViewById<LinearLayout>(R.id.container)
        // Add RatingBar and button to LinearLayout
        linearLayout?.addView(rBar)
        linearLayout?.addView(button)
  
        button?.setOnClickListener {
            val msg = rBar.rating.toString()
            Toast.makeText(this@MainActivity, "Given Rating: "+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:

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 *