RatingBar 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 manualmente o mediante programación, pero vamos a discutir manualmente.

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 .

Diferentes atributos del widget RatingBar

Atributos XML Descripción
Android: identificación Se utiliza para identificar de forma única el control.
android: calificación Se utiliza para establecer el valor de calificación predeterminado para la barra de calificación.
android:numEstrellas Se utiliza para establecer el número de estrellas que se mostrarán.
android:fondo Se utiliza para establecer el color de fondo de la barra de calificación.
Android: relleno Se utiliza para configurar el relleno para la izquierda, la derecha, la parte superior o la parte inferior de la barra de clasificación.
Android: tamaño de paso Se usa para establecer el tamaño de paso en RatingBar como 0.5 o 1.

Modifique el archivo activity_main.xml

En este archivo, agregamos RatingBar y un botón en LinearLayout. También establezca atributos para ambos widgets como id, stepSize, background, etc.

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="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical"
    android:gravity ="center">
  
    <RatingBar
        android:id="@+id/rBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:stepSize="0.5"
        android:theme="@style/Widget.AppCompat.RatingBar"
        android:background="@color/colorPrimary"
        android:numStars="4"/>
  
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Submit Rating" />
  
</LinearLayout>

El nombre de la aplicación se puede poner en el archivo strings.xml

xml

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

Acceda a RatingBar en el archivo MainActivity.kt

Primero, declararemos la variable rBar para acceder a la Calificación usando el id como

val rBar = findViewById<RatingBar>(R.id.rBar)

luego, declare otro botón variable y acceda al botón usando su id.

val button = findViewById<Button>(R.id.button)

Al final, para mostrar el mensaje de brindis al enviar las calificaciones, codificamos así

button?.setOnClickListener {
      val msg = rBar.rating.toString()
      Toast.makeText(this@MainActivity,
       "Rating is: "+msg, Toast.LENGTH_SHORT).show()

Kotlin

package com.geeksforgeeks.myfirstkotlinapp
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.RatingBar
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        val rBar = findViewById<RatingBar>(R.id.rBar)
        if (rBar != null) {
            val button = findViewById<Button>(R.id.button)
            button?.setOnClickListener {
                val msg = rBar.rating.toString()
                Toast.makeText(this@MainActivity,
                    "Rating is: "+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 *