我正在使用RelativeLayout
和ImageView
以及两个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星只显示完全填充的星星。
答案 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 -->