评级栏未显示正确的评级。仅显示填充的星星

时间:2016-05-25 16:52:53

标签: android listview android-studio ratingbar

我正在使用RelativeLayoutImageView以及两个TextViews设置的评级栏。 RelativeLayout在我的ListView中排成一行。

评级栏从ListView中选择的项目中获得评级,但不显示正确的“星值”。

<RatingBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/item_rating"
        android:layout_toRightOf="@+id/item_icon"
        android:layout_below="@+id/item_Name"
        android:numStars="5"
        android:rating="3.5"
        android:stepSize="0.1"/>

例如:setRating(3.5f)将导致4颗满星。

使事情变得更复杂: getRating();将返回正确的float-Value(在本例中为3.5)

float rating_value = currentCocktail.getRating();
        RatingBar rating = (RatingBar)itemView.findViewById(R.id.item_rating);
        rating.setIsIndicator(true);
        rating.setNumStars(5);
        rating.setMax(5);
        rating.setStepSize(0.1f);
        rating.setRating(rating_value);

        alc.setText(""+rating.getRating());

以上代码用于设置评级。 alc将显示在此代码的第一行中收到的正确值。然而,星星没有正确显示。

为了清楚起见:我的评级栏DOES接受浮点值,因为getRating()方法返回我使用setRating()方法设置的正确浮点值。 问题是,虽然我将stepSize设置为0.1f,但ratingbars星只显示完全填充的星星。

1 个答案:

答案 0 :(得分:0)

试试这段代码:

rate_bar.setRating(Float.parseFloat("2.0"));

或直接使用浮动:

rate_bar.setRating(0.0f);

如果要设置默认评级值,可以使用

<RatingBar
        android:id="@+id/ratingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="4"               <-- total number of stars -->
        android:stepSize="1.0"
        android:rating="2.0" />             <-- default value  -->