Как рассчитать и отобразить средний рейтинг в рейтинговой строке? - PullRequest
0 голосов
/ 14 апреля 2020

Я начинающий программист и работаю над приложением, которое отображает элементы. Пользователи могут оценивать элемент с помощью строки рейтинга, а также написать комментарий. Шкала рейтинга также имеет шкалу.

Как рассчитать среднюю оценку предмета и отобразить его в новой строке рейтинга? Есть идеи?

RatingBar mRatingBar = (RatingBar) findViewById(R.id.ratingBar);
    EditText mFeedback = (EditText) findViewById(R.id.etFeedback);
    Button mSendFeedback = (Button) findViewById(R.id.btnSubmit);
    TextView mRatingScale = (TextView) findViewById(R.id.tvRatingScale);
mRatingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {
                mRatingScale.setText(String.valueOf(v));
                switch ((int) ratingBar.getRating()) {
                    case 1:
                        mRatingScale.setText("Pretty bad");
                        break;
                    case 2:
                        mRatingScale.setText("Just okay");
                        break;
                    case 3:
                        mRatingScale.setText("Good");
                        break;
                    case 4:
                        mRatingScale.setText("Very good");
                        break;
                    case 5:
                        mRatingScale.setText("Amazing!");
                        break;
                    default:
                        mRatingScale.setText("");
                }
            }
        });
        mSendFeedback.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mRatingBar.getRating() == 0.0 ) {
                    Toast.makeText(EventDemo.this, "Please enter a rating", Toast.LENGTH_LONG).show();
                } else {
                    mFeedback.setText("");
                    mRatingBar.setRating(0);
                    Toast.makeText(EventDemo.this, "Thanks for the rating", Toast.LENGTH_SHORT).show();
                }
            }

1 Ответ

0 голосов
/ 14 апреля 2020

Вы можете получить каждое значение рейтинга с помощью RatingBar.getRating (), суммировать все значения и разделить его на количество рейтинговых баров.

    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;

Это то, что вы хотите? Пожалуйста, прокомментируйте, чтобы избежать недоразумений. Спасибо.

...