2013-10-25 5 views
-1

Я играю с виджетами рейтинга в андроиде. Я знаю, как вытащить номер рейтинга из виджета рейтинга, но если у меня будет более одного курса, и я хочу усреднить ставки. Как я могу это сделать?Как пользоваться рейтингом виджета и средними ставками - андроид

Это то, что у меня есть на данный момент.

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)); 

     } 
    }); 

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

Редакция: так что я хочу спросить, как я могу вычислить среднее значение многого ratingbars

+0

Не могли бы вы подробнее рассказать о проблеме? Вы хотите, чтобы _only_ вычислил средний рейтинг от многих «RatingBar»? Или, есть что-то еще? –

+0

oops YES Я хочу рассчитать средний рейтинг из многих баров. Извините за мой плохой английский. Часть избыточности Я хочу попробовать это позже, прежде чем задавать вопросы. – WXR

ответ

1

Вы можете получить каждое значение рейтинга, используя 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; 

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

+0

Я считаю, что это то, чего я хочу. Я попробую это через несколько минут. – WXR

+0

от того, что вы сказали, я верю, что это то, что я хочу, но каким-то образом, когда я его реализую, я получаю ошибку. Я реализую ваш код внутри кнопки 'setOnClickListener' с помощью« textView », чтобы показать среднее значение, но у меня есть красная строка, в которой« RatingBar.getRating() »является ошибкой – WXR

+0

. Если возможно, не могли бы вы разместить свой логарифм здесь? Где вы поместили этот код? Убедитесь, что доступны «ratingBar» и «ratingBar1» (или это даст «NullPointerException»). –