如何获取RatingBar的值

13
如何读取和显示评分条的值
i[0] // should be selected value

private OnClickListener onclickbutton1 = new OnClickListener() {
    public void onClick(View v) {
        int[] i = new int[]{ R.id.mRatingBar};

        statusMessage.setText("value is " + i[0]);
    }
};

// 这个有效

private OnClickListener onclickbutton1 = new OnClickListener() {
    public void onClick(View v) {
        RatingBar mBar = (RatingBar) findViewById(R.id.mRatingBar);

        float[] i = new float[]{ mBar.getRating() };

        statusMessage.setText("value is.. " + i[0]);
    }
};

getNumStars()方法返回评分。 - Nikunj Patel
你好,Power-Mosfet,请检查我的答案。 - Dipak Keshariya
没有以下任何答案可用。 - User6996
9个回答

26

你现在的做法是不正确的:你输出了评分条的资源id,而不是它的值。

让我假设你之前做过类似以下的事情:

RatingBar mBar = (RatingBar) findViewById(R.id.mRatingBar);
mBar.setOnClickListener(onclickbutton1);

例如在活动的onCreate()中。然后在您提供的单击监听器内,可以按以下方式获取评分:

public void onClick(View v) {
    RatingBar bar = (RatingBar) v;
    statusMessage.setText("value is " + bar.getRating());
}

9

简单调用

  ratingBar.getRating() ; GET RATING BAR VALUE

当您想在更改时获取评级值
     public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromTouch) {

     final int numStars = ratingBar.getNumStars();
     ratingBar.getRating() ;
     final float ratingBarStepSize = ratingBar.getStepSize();

}

2
rbRatingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {

                Float ratingVal = (Float) rating;
                Float ratingvalue = (Float) rbRatingBar.getRating();
                Toast.makeText(getApplicationContext(), " Ratings : " + String.valueOf(ratingVal) + "", Toast.LENGTH_SHORT).show();
                Toast.makeText(getApplicationContext(), " Ratings1 : " + ratingvalue + "", Toast.LENGTH_SHORT).show();
            }
        });

请在您的答案中添加描述 - Gregor Doroschenko
你需要什么样的描述?这里的rbRating Bar是评分栏,一切都设置好了,我甚至使用了本地变量,所以任何人都不必查找任何东西。 - Deepak Rajput
即使我展示了两种获取评分条值的方法 - Deepak Rajput
只需使用 onRatingChanged() 提供的浮点值。 - Vikash Sharma

2
RatingBar ratingBar = (RatingBar) findViewById(R.id.mRatingBar);
RatingBar.setOnClickListener(onclickbutton1);

public void onClick(View v) {
    RatingBar bar = (RatingBar) v;
    rating.setText("value is " + bar.getRating());
}

2
使用此功能获取评分。
(RatingBar)findViewById(R.id.ratingbar1)).setOnRatingBarChangeListener(this);
        ((RatingBar)findViewById(R.id.ratingbar2)).setOnRatingBarChangeListener(this);
    }

    public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromTouch) {
        final int numStars = ratingBar.getNumStars();
        mRatingText.setText( 
                getString(R.string.ratingbar_rating) + " " + rating + "/" + numStars);

 }

0
import android.widget.RatingBar;

public class PageAboutFragment extends Fragment implements RatingBar.OnRatingBarChangeListener  {


rbSearch.setOnRatingBarChangeListener(this);


public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
        tvRatingContent.setText(rating+"/5 Stars");
}

0
var ratingBar = findViewById<RatingBar>(R.id.ratingBarid);
var text1 = findViewById<TextView>(R.id.textViewid)

// rating bar click to show the text view

ratingBar.setOnRatingBarChangeListener(object: RatingBar.OnRatingBarChangeListener{

    override fun onRatingChanged(ratingBar: RatingBar?, rating: Float, fromUser: Boolean) {
       // TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
        text1.text = "Rating bar result $rating"
    }
})

0
    var ratingBar = findViewById<RatingBar>(R.id.ratingBarid);
    var btn= findViewById<Button>(R.id.buttonid);
    var text1 = findViewById<TextView>(R.id.textViewid)


    /*

     3rd rules of

    if (ratingBar!=null){

        btn.setOnClickListener {

            val msg = ratingBar.rating.toString();
            text1.setText("The result of $msg")
        }
    }


   // rating bar click to show the text view

   // ratingBar.setOnRatingBarChangeListener(this)






              // 1st rules of Rating Bar..
  ratingBar.setOnRatingBarChangeListener(object: RatingBar.OnRatingBarChangeListener{

      override fun onRatingChanged(ratingBar: RatingBar?, rating: Float, fromUser: Boolean) {
         // TODO("not implemented") //To change body of created functions use File | Settings | File Templates.

          text1.text = "Rating bar result $rating"
      }
  })




}


            // 2nd rules of Rating bar ....
override fun onRatingChanged(ratingBar: RatingBar?, rating: Float, fromUser: Boolean) {
    //TODO("not implemented") //To change body of created functions use File | Settings | File Templates.

    var text1 = findViewById<TextView>(R.id.textViewid)
    text1.text = "Rating Bar Result : $rating"



    */
}

0
RatingBar rate = (RatingBar)findViewById(R.id.R_rate);

//use ratings within event listner code block

float rating = rate.getRating();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接