繁体   English   中英

如何在Rating Bar中设置浮点类型x.5?

[英]How can I set the float type x.5 in Rating Bar?

我有个问题。 问题是我看不到评级栏的一半评级。 例如,有ratingbar设置numStar =“5”,stepSize =“0.5”,isIndicator =“true”。 然后我使用了RatingBar方法:setRating并设置rating = 2.5。 我以为这个RatingBar会告诉我2start +半星。 但这个评级栏表示3开始。 我无法弄清楚..有人帮助我..

示例代码:

RatingBar rt =(RatingBar)findViewById(R.id.ratingbar1);
rt.setNumStart=5;
rt.setStepSize=0.5f;
rt.setRating(2.5f);
RatingBar rt =(RatingBar)findViewById(R.id.ratingBar);
rt.setIsIndicator(true);
rt.setNumStars(5);
rt.setStepSize(0.5f);
rt.setRating(2.5f);

我使用相同的代码,它对我有用。 这可能是一个错误,或者在尝试设置评级时可能存在问题。 如果要从变量设置值,请尝试rt.setRating((float) var) 请参阅屏幕截图

更新:设置最大值似乎解决了一些用户的问题,请尝试rt.setMax(5)

float aveRating=totalSum/totalIndex;

        float refRat= (float) (aveRating-(Math.floor(aveRating)));
        float setRat=0;

        if(refRat>=0.7){
            setRat=Math.round(aveRating);
            Toast.makeText(this,"0.7이상:"+ setRat,Toast.LENGTH_SHORT).show();
        }
        else if(refRat<0.7 && refRat>=0.3){
            setRat= (float) (Math.floor(aveRating)+(float)0.5);
            Toast.makeText(this,"0.7이하 0.5이상 :" + setRat,Toast.LENGTH_SHORT).show();
        }
        else if(refRat<0.3){
            setRat= (float) Math.floor(aveRating);
            Toast.makeText(this," 0.5이하:"+ setRat,Toast.LENGTH_SHORT).show();
        }

        String stringAveRat = String.format("%.1f" , aveRating);

        ksRatingBar.setRating((float)setRat);
        ksRatingText.setText(stringAveRat);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM