3

私のコードでは、RatingBarは最も近い double の数値を示しています。たとえば、値が 3.5 の場合は 4 つ星として表示され、3.2 の場合は 3 つ星として表示されます。常に最も近いラウンド数の整数値になります。

私が使用したコード:

TextView rateavg =(TextView)findViewById(R.id.textView1);
rateavg.setText(stringrate);
RatingBar ratingBar = (RatingBar)findViewById(R.id.ratingBar1);
ratingBar.setEnabled(false);
ratingBar.setMax(5); // I assume 5 is your max rating
ratingBar.setRating(Float.parseFloat(stringrate));
ratingBar.setStepSize(0.5f);
4

2 に答える 2

6

これを試して:

ratingBar.setEnabled(false);
ratingBar.setMax(5);
ratingBar.setStepSize(0.01f);
ratingBar.setRating(Float.parseFloat(stringrate));
ratingBar.invalidate();
于 2013-12-17T07:42:05.187 に答える
0

あなたの懸念のためにあなたが試すことができます..

int rate = 3.8; // Get your value over here .. 

final RatingBar ratingbar = (RatingBar) rowView.findViewById(R.id.service_rate_bar);
ratingbar.setStepSize((float) 0.25);
ratingbar.setIsIndicator(true);
ratingbar.setRating((int) rate);

そしてあなたのxmlファイルで、このように評価バーを定義します..

<RatingBar
            android:paddingTop="5dp"
            android:id="@+id/service_rate_bar"
            style="@style/CustomRatingBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:numStars="5"
            android:stepSize="1.0" 

            />
于 2013-12-17T07:38:01.573 に答える