Android Ratingbar没有回应

时间:2017-07-27 01:53:25

标签: java android xml ratingbar

我正在制作一个评级栏,允许用户评价某些内容。 因此,我使用这个java代码

    setContentView(R.layout.restaurant_detail);
    value=(TextView) findViewById(R.id.textView23) ;
    rb=(RatingBar) findViewById(R.id.ratingBar);
    rb.setOnRatingBarChangeListener(new 
    RatingBar.OnRatingBarChangeListener(){
    @Override
    public void onRatingChanged(RatingBar ratingBar,float rating,boolean fromUser){
        value.setText("Rated:"+rating)}
    });

和这个xml代码

<RatingBar
      android:id="@+id/ratingBar"
      style="?android:attr/ratingBarStyleSmall"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:isIndicator="true"
      android:numStars="5"
      android:rating="4.5"
      android:stepSize="0.5" />

<TextView
      android:id="@+id/textView23"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:text="TextView" />

但是当我按下它时,评级栏不会改变。我做了很多徒劳的搜索,请帮我解决问题。

2 个答案:

答案 0 :(得分:0)

尝试修改此

 rb.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
        public void onRatingChanged(RatingBar ratingBar, float rating,
         boolean fromUser) {
         Toast.makeText(getApplicationContext(),"Your Selected Ratings  : " + String.valueOf(rating),Toast.LENGTH_LONG).show();
        }
  });

答案 1 :(得分:0)

你可以这样做。

<RatingBar
    android:id="@+id/ratingBar"
    style="?android:attr/ratingBarStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:isIndicator="false"
    android:numStars="5"
    android:rating="4.5"
    android:stepSize="0.5" />

<TextView
    android:id="@+id/textView23"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="TextView" />

只需在android:isIndicator="false"

中设置RatingBar即可

然后在活动中使用。

rb.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener(){
    @Override
    public void onRatingChanged(RatingBar ratingBar,float rating,boolean fromUser){
        value.setText("Rated:"+rating)}
});