2015-02-05 5 views
1

ListView의 각 항목에 RatingBar을 추가했습니다. 잘 작동하지만 정확한 등급이 표시되지 않습니다. 예를 들어 점수가 4.3이면 5 번째 별의 일부를 표시해야하지만 이 아닙니다.RatingBar deosn't 명시된 등급

스크린 샷 :

첫 번째 항목의
  • 평가 = 두 번째 항목의 4.3
  • 평가 =

    My current ListView

    4.5

당신이 어디에 어떤 생각을 가지고 있습니까 문제가 될 수 있니?

나는 도움이나 제안을 기쁘게 생각합니다. 내 어댑터에서의 getView에서

ratingsbar.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> 

방법()

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> 
+3

'clubs.getInt ("clubRating") ', 오른쪽, i.e.4을 int 값을 제공해야합니까? –

+0

제 질문을 새로 고치십시오. 항목의 값은 4.3 및 4.5입니다. 문제가있는 곳 – marson

+1

여기에 디버깅하라고 알려주고 있습니다 :'holder.rating.setRating ((float) (clubs.getInt ("clubRating"))); '. 'getInt'는 int 값을 반환합니다. 4.3 또는 4.5 일 수는 없지만 단지 4. 다시 확인하십시오. float 값을 저장하고 float 값을 가져와야합니다. 그럼'setRating' 제대로 작동해야합니다. –

답변

1

getView()에서 등급을 정수로 요청한 다음 부동 소수점으로 캐스팅합니다. 따라서 10 진수 값은 유실됩니다. 대신 float 값을 저장하고 다음 getFloat를 사용

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

로빈 감사합니다 :) – marson