[英]How to calculate and display the average rating in a rating bar?
I'm a beginner programmer and I am working on an app that displays items.我是一名初级程序员,我正在开发一个显示项目的应用程序。 Users can rate an item using a rating bar and also write a comment.
用户可以使用评级栏对项目进行评级,也可以发表评论。 The rating bar has a scale too.
评级栏也有一个比例尺。
How can I calculate the average rating of the item and display it in a new rating bar?如何计算项目的平均评分并将其显示在新的评分栏中? Any ideas?
有任何想法吗?
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();
}
}
You can get each rating value using RatingBar.getRating(), sum all the values and divide it by the number of rating bars.您可以使用 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;
Is this what you want?这是你想要的吗? Please comment to avoid misunderstanding.
请发表评论,以免误会。 Thank you.
谢谢你。
public class MainActivity extends AppCompatActivity { private RatingBar rBar; private TextView tView; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rBar = (RatingBar) findViewById(R.id.ratingBar1); tView = (TextView) findViewById(R.id.textview1); btn = (Button)findViewById(R.id.btnGet); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int noofstars = rBar.getNumStars(); float getrating = rBar.getRating(); tView.setText("Rating: "+getrating+"/"+noofstars); } }); } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.