I'm playing around with the rating widget in android. I know how to pull out the rating number from the rating widget but if I have more than one rates and I want to average the rates. How can I do that?

This is what I have at the moment.

    RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar1);
    ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
            TextView rate_lotr_number = (TextView)findViewById(R.id.rate_number1);
            rate_lotr_number.setText(String.valueOf(rating));

        }
    });

    RatingBar ratingBar1 = (RatingBar) findViewById(R.id.ratingBar2);
    ratingBar1.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
            TextView rate_lotr_number = (TextView)findViewById(R.id.rate_number2);
            rate_lotr_number.setText(String.valueOf(rating));

        }
    });

I know I could probably use a look a some arrays to make a loop so to reduce all those repeating texts but I want to try how to average the rates before trying to reduce the redundancy.

EDITED: so what I want to ask how can I calculate the average of many ratingbars

有帮助吗?

解决方案

You can get each rating value using RatingBar.getRating(), sum all the values and divide it by the number of rating bars.

RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar1);
RatingBar ratingBar1 = (RatingBar) findViewById(R.id.ratingBar2);

float total = 0;
total += ratingBar.getRating();
total += ratingBar1.getRating();
float average = total / 2;

Is this what you want? Please comment to avoid misunderstanding. Thank you.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top