Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在评级栏中计算和显示平均评级?_Java_Android_Rating_Ratingbar - Fatal编程技术网

Java 如何在评级栏中计算和显示平均评级?

Java 如何在评级栏中计算和显示平均评级?,java,android,rating,ratingbar,Java,Android,Rating,Ratingbar,我是一个初学者程序员,我正在开发一个显示项目的应用程序。用户可以使用评级栏对项目进行评级,还可以撰写评论。评级栏也有一个刻度 如何计算项目的平均评分并将其显示在新的评分栏中?有什么想法吗 RatingBar mRatingBar = (RatingBar) findViewById(R.id.ratingBar); EditText mFeedback = (EditText) findViewById(R.id.etFeedback); Button mSendFeedback

我是一个初学者程序员,我正在开发一个显示项目的应用程序。用户可以使用评级栏对项目进行评级,还可以撰写评论。评级栏也有一个刻度

如何计算项目的平均评分并将其显示在新的评分栏中?有什么想法吗

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


您可以使用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;
这是你想要的吗?请发表评论以避免误解。谢谢。

公共类MainActivity扩展了AppCompatActivity{
私人评级杆rBar;
私人文本视图电视视图;
专用按钮btn;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rBar=(RatingBar)findViewById(R.id.ratingBar1);
tView=(TextView)findViewById(R.id.textview1);
btn=(按钮)findViewById(R.id.btnGet);
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
int noofstars=rBar.getNumStars();
float getrating=rBar.getrating();
tView.setText(“评级:+getrating+”/“+noofstars”);
}
});
}
}

是,但我还想在新的评级栏上显示平均评级。我该怎么做?如果没有任何上下文、示例代码(代码片段或repo)和应用程序工作原理的一般概念,用户很难正确回答您的问题。请编辑您的问题以包含相关信息。将所有评分相加并将结果除以评分总数,然后使用显示用户评分的相同代码显示一般评分。感谢您的贡献。您提出的代码可能会解决原始海报的问题,但用几句话概括您的建议将获得更有价值的答案。考虑编辑你的答案来改进它!