我已将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"));