簡體   English   中英

如何計算並顯示評分欄中的平均評分?

[英]How to calculate and display the average rating in a rating bar?

我是一名初級程序員,我正在開發一個顯示項目的應用程序。 用戶可以使用評級欄對項目進行評級,也可以發表評論。 評級欄也有一個比例尺。

如何計算項目的平均評分並將其顯示在新的評分欄中? 有任何想法嗎?

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;

這是你想要的嗎? 請發表評論,以免誤會。 謝謝你。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM