📜  Kotlin中的Dynamic RatingBar

📅  最后修改于: 2021-05-13 17:26:15             🧑  作者: Mango

Android RatingBar是一个用户界面小部件,用于从客户或用户那里获得评级。它是SeekBar和ProgressBar的扩展,可以显示星级,并且允许用户通过单击星级来进行评级。

在RatingBar中,我们可以使用android:stepSize设置步长,并且它将始终返回评分值作为浮点数,例如1.0、2.0、2.5等。通过使用android:numStars属性,我们可以在RatingBar中指定星数。 RatingBar用于从用户或客户那里获得有关产品,电影或酒店体验等的评分。

RatingBar可以手动或以编程方式创建,但我们将以编程动态方式进行讨论。

首先,我们按照以下步骤创建一个新项目:

  1. 单击文件,然后单击新建=>新建项目
  2. 之后,包括Kotlin支持,然后单击下一步。
  3. 根据方便选择最小的SDK,然后单击下一步
  4. 然后选择清空活动=>下一个=>完成

修改activity_main.xml文件

在此文件中,我们使用LinearLayout并设置其属性(如id,padding等),并且可以使用id在Kotlin文件中对其进行访问。



  

字符串.xml文件中添加应用程序名称
在这里,我们可以将可以在应用程序中使用的所有字符串放在任何文件中。因此,我们更新了app_name,该名称可以在活动顶部看到。


    DynamicRatingBarInKotlin

在MainActivity.kt文件中创建RatingBar

首先,我们声明变量rBar来创建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

然后,我们声明另一个变量来创建一个像这样的按钮

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

之后,使用以下语句将RatingBar和按钮添加到LinearLayout中

linearLayout?.addView(rBar)
linearLayout?.addView(button)
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(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()
        }
    }
}

AndroidManifest.xml文件



  

    
        
            
  
            
        
    

  

作为仿真器运行:

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!