我已将RatingBar添加到ListView的每个项目中。它运作良好,但没有显示确切的评分。例如,如果评级为4.3,则它必须显示第5星的一部分,但不是。

屏幕截图:


第一项的评分= 4.3
第二项的评分= 4.5




您有什么想法,问题可能在哪里?

如果有任何帮助或建议,我将非常高兴。

ratingbar.xml

    <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+android:id/background"
          android:drawable="@drawable/ic_action_star_rate1" />
    <item android:id="@+android:id/secondaryProgress"
          android:drawable="@drawable/ic_action_star_rate1" />
    <item android:id="@+android:id/progress"
          android:drawable="@drawable/ic_action_star_rate" />
</layer-list>


我的适配器中的getView()中的方法

if(clubs.getInt("clubRating")!= 0){
        holder.rating.setRating((float) (clubs.getInt("clubRating")));
        }else{
            holder.rating.setRating(0);
        }


项目布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="220dp"
    android:minHeight="220dp"
    android:background="@drawable/club_item"
    android:id="@+id/clubAll" >


   <ImageView
        android:id="@+id/club_poster"
        android:layout_width="match_parent"
        android:layout_height="220dp"
        android:src="@drawable/placeholder"
        android:scaleType="centerCrop" />

    <ImageView
        android:id="@+id/club_vip_small"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:scaleType="fitXY"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
         />


    <TextView
        android:id="@+id/club_events_true"
        android:layout_width="wrap_content"
        android:layout_height="35dp"
        android:padding="2dp"
        android:textSize="13sp"
        android:textColor="#FFFFFF"
        android:gravity="center_vertical"
        android:paddingRight="7dp"
        android:text="@string/events_true"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:background="#00C659"
        android:drawableLeft="@drawable/eventsup" />


    <TextView
        android:id="@+id/club_discounts_true"
        android:layout_width="wrap_content"
        android:layout_height="35dp"
        android:padding="2dp"
        android:paddingRight="7dp"
        android:textSize="13sp"
        android:gravity="center_vertical"
        android:textColor="#FFFFFF"
        android:text="@string/discounts_true"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/club_events_true"
        android:background="#F6D100"
        android:drawableLeft="@drawable/golden_discount" />


    <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="90dp"
    android:minHeight="75dp"
    android:layout_alignParentBottom="true"
    android:background="#FFFFFF"
    android:id="@+id/club_head_info" >


     <com.example.android.ImageViewRounded
        android:id="@+id/club_club_logo"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@drawable/placeholder_club"
        android:scaleType="fitXY"
        android:layout_marginLeft="5dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true" />


     <com.example.android.AutofitTextView
        android:id="@+id/club_distance_small"
        android:layout_width="57dp"
        android:layout_height="57dp"
        android:background="@drawable/meters_back"
        android:layout_marginLeft="5dp"
        android:gravity="center"
        android:singleLine="true"
        android:padding="3dp"
        android:textSize="16sp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true" />

     <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="70dp"
    android:layout_marginLeft="10dp"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@id/club_club_logo"
    android:id="@+id/club_foot_info" >

         <TextView
        android:id="@+id/club_type_fake"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Bar"
        android:paddingRight="4dp"
        android:visibility="invisible"
        android:textStyle="bold"
        android:paddingLeft="4dp"
        android:paddingTop="2dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:paddingBottom="2dp"
        android:textAllCaps="true"
        android:textSize="11sp"
        android:textColor="#FFFFFF"
        android:layout_marginRight="4dp"
        android:background="@drawable/type_btn_bar" />

         <RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:id="@+id/club_typerate"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" >

     <TextView
        android:id="@+id/club_type_small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Bar"
        android:paddingRight="4dp"
        android:textStyle="bold"
        android:paddingTop="2dp"
        android:paddingBottom="2dp"
        android:paddingLeft="4dp"
        android:textAllCaps="true"
        android:textSize="11sp"
        android:textColor="#FFFFFF"
        android:background="@drawable/type_btn_bar" />

      <RatingBar
      android:id="@+id/club_rating_small"
      android:padding="1dp"
      android:layout_height="wrap_content"
      android:layout_width="wrap_content"
      android:layout_toRightOf="@id/club_type_small"
      android:layout_centerVertical="true"
      android:isIndicator="true"
      android:stepSize="0.01"
      android:numStars="5"
      style="@style/foodRatingBar"
           />

      </RelativeLayout>
      <TextView
        android:id="@+id/club_title_small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:textSize="16sp"
        android:singleLine="true"
        android:text="ROXY Prague"
        android:ellipsize="end"
        android:padding="1dp"
        android:layout_below="@id/club_type_fake"
        android:layout_marginTop="3dp"
        android:textColor="#000"
        android:textStyle="bold"
         />

      <TextView
        android:id="@+id/club_openclose_small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:textSize="14sp"
        android:gravity="fill"
        android:text="@string/open"
        android:textColor="#00AC00"
        android:layout_below="@id/club_title_small"
         />


      </RelativeLayout>

    </RelativeLayout>


</RelativeLayout>

最佳答案

getView()中,您要求等级为整数,然后将其强制转换为浮点数。因此,十进制值会丢失。而是存储浮点值,然后使用getFloat

holder.rating.setRating(clubs.getFloat("clubRating"));

08-27 21:58