【问题标题】:How to use Ratingbar accurately?如何准确使用 Ratingbar?
【发布时间】:2019-09-04 18:49:13
【问题描述】:

我看过几个关于使用 RatingBar 的教程,但问题仍然存在。

Ratingbar - how to?

https://pt.stackoverflow.com/questions/150770/ratingbar-enviando-valor-para-textview-android

https://pt.stackoverflow.com/questions/206958/rating-arredonda-para-estrelas-fixas

我正在用 java、android studio 开发一个应用程序,并且我正在尝试使用 ratingbar。

问题是没有正确选择星星... 在某些情况下,我点击了star2并选择了star3等等。

<RatingBar

        android:id="@+id/rtbAval"
        android:layout_width="293dp"
        android:layout_height="65dp"
        android:layout_marginStart="30dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"

        android:isIndicator="false"
        android:numStars="5"
        android:rating="5"
        android:stepSize="1"
        android:padding="0dp"

        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toEndOf="@+id/txtNomeAval"
        app:layout_constraintTop_toTopOf="parent" />




        obs.setText(av.getObservacoes());

        nota.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
                obs.setText(String.valueOf(rating));
            }
        });

星星以下的数字可以使用星数。

【问题讨论】:

  • 我建议您只创建一个评分栏,仅用于测试并检查它是否仅使用一个评分栏重现。我已经尝试过这样做,但无法重现您所说的内容。
  • @OrenZakay 我只放了一个 ratingBar,最终结果是一样的。例如:点击两个 ... 结果是 2.5。

标签: android android-studio android-layout


【解决方案1】:

您无需使用任何侦听器即可获得 rating 的值。您可以从 RatingBar 类的 getNumStars() 方法中获取它。它将返回显示的星数。

【讨论】:

  • getNumStar 返回最大星数,而不是选定的星数。
  • @JúlioCésarBindandi 在这种情况下, rtbAvl.getRating.toString() 将为您提供所选星星的数量
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 1970-01-01
  • 1970-01-01
  • 2010-10-11
  • 2011-09-03
  • 2011-03-27
  • 1970-01-01
相关资源
最近更新 更多