ratingbar 没有填充来自 JSON android 的浮点值

ratingbar does not filled the float value coming from JSON android

问题是,如果评分是 3.5,那么评分栏最多会填满 3 星……它不会填满第四颗星的一半……

我不知道我哪里出错了需要帮助thanks:Following是我的代码

评分:

    <RatingBar
        android:numStars="5"
        android:id="@+id/ratingbar"
        android:layout_width="wrap_content"
        android:clickable="false"
        android:isIndicator="true"
        android:layout_height="45dp"
        android:focusableInTouchMode="false"
        android:defaultFocusHighlightEnabled="false"
        android:focusable="false"
        android:progressBackgroundTint="#7F7F7F"
        android:progressTint="#FFBA00"
        android:stepSize="0.5"
      />

这是我的适配器:-不发布完整代码只是一个重要部分

override fun onBindViewHolder(holder: MyViewHolder, position: Int) {

    holder.productname.text = Tablelist.get(position).name
    holder.producername.text = Tablelist.get(position).producer

    holder.productprice.text = Tablelist.get(position).cost.toString()

    Glide.with(context).load(Tablelist.get(position).product_images)
        .into(holder.image)
    holder.rate.setRating(Tablelist.get(position).rating);
 //   holder.rate.setStepSize(Tablelist.get(position).rating);// to show to stars


    holder.itemView!!.setOnClickListener {


        val context:Context=holder.itemView.context
        val i=Intent(context,
            Product_details::class.java)
        i.putExtra("id",Tablelist.get(position).id.toString())
      Log.e("checkid",Tablelist.get(position).id.toString())
        context.startActivity(i)
    }
}

fun setMovieListItems(movieList: List<Table_data>){
    this.Tablelist = movieList;
    notifyDataSetChanged()
}

class MyViewHolder(itemView: View?) : RecyclerView.ViewHolder(itemView!!) {

    val productname: TextView = itemView!!.findViewById(R.id.title)
    val producername: TextView = itemView!!.findViewById(R.id.title1)
    val productprice: TextView = itemView!!.findViewById(R.id.title2)
    val rate: RatingBar=itemView!!.findViewById(R.id.ratingbar)

    val image: ImageView = itemView!!.findViewById(R.id.image)

}

这是我的表格:

data class Table_data (

@SerializedName("id") val id : Int,
@SerializedName("product_category_id") val product_category_id : Int,
@SerializedName("name") val name : String,
@SerializedName("producer") val producer : String,
@SerializedName("description") val description : String,
@SerializedName("cost") val cost : Int,
@SerializedName("rating") val rating : Float=0.0f,
@SerializedName("view_count") val view_count : Int,
@SerializedName("created") val created : String,
@SerializedName("modified") val modified : String,
@SerializedName("product_images") val product_images : String
)

不确定,但这里的问题可能出在 json 适配器的浮点数转换上。您可以做的是将字段作为字符串获取,因此在转换时不会丢失该值。

@SerializedName("rating") val rating : String,

现在在您的适配器中尝试将其转换为浮点数。

 holder.rate.setRating(Tablelist.get(position).rating.toFloat())

你能试试这个吗