私はここで少し困惑しています。私はandroid/java開発にかなり慣れていないので、ここで私が間違っていることを特定するのを手伝ってください。私はグーグル、アンドロイド開発、スタック全体を積極的にチェックしましたが、これに関する多くの情報を見つけることができませんでした。
theRatingとして数値を持つ文字列変数があります。例:2.5(10点満点)ratingbarstylesmallを使用してこれを表示しようとしています...これは、評価のみを表示するためのものであり、評価を表示するためのものではありません。
RatingBar rb = new RatingBar(this, null, android.R.attr.ratingBarStyleSmall);
rb.setIsIndicator(true);
rb.setNumStars(5);
rb.setStepSize((float) 0.5);
rb.setMax(10);
rb.setRating(Integer.parseInt(theRating));
llTextEtc.addView(rb);
星はLienarLayout(llTextEtc)内に正常に読み込まれ、適切な場所に表示されます。これは、私が望む適切なスタイルの星です(小さい)が...
それは完全にランダムです。8つ星を表示するものもあれば、15を表示してから、7に戻るものもあります。完全にランダム。私は何が間違っているのですか?
みんなありがとう
更新:受け入れられた回答の助けを借りて:wrap_contentレイアウトで評価バーを保持するためにLinearLayoutが追加されました。それ以外の場合、親(scrollview)はwrap_contentになりました。
LinearLayout llRating = new LinearLayout(this);
RatingBar rb = new RatingBar(this, null, android.R.attr.ratingBarStyleSmall);
rb.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
rb.setIsIndicator(true);
rb.setNumStars(5);
rb.setRating(Float.parseFloat(theRating)/2);
llRating.addView(rb);
llTextEtc.addView(llRating);
setStepSizeとsetMaxも削除され、Ratingは整数ではなくfloatに設定されました。星が計算されてから設定されます。isIndicatorがtrueの場合、stepSizeとMaxは役に立ちません。