【问题标题】:Android Rating Bar unable to set decimal valuesAndroid Rating Bar 无法设置十进制值
【发布时间】:2015-10-23 06:59:54
【问题描述】:

我正在尝试将评分栏的初始评分设置为浮点值。但输出总是完全填满星星!我不知道为什么会这样。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    ratingText = (TextView) findViewById(R.id.rating);
    ratingBar = ((RatingBar) findViewById(R.id.ratingBar1));
    ratingBar.setRating(Float.parseFloat("3.5"));
    ((RatingBar) findViewById(R.id.ratingBar1))
            .setOnRatingBarChangeListener(this);

}

这是评分栏:

<RatingBar
    android:id="@+id/ratingBar1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:stepSize="0.5"
    android:layout_marginLeft="22dp"
    android:layout_marginTop="28dp" />

【问题讨论】:

    标签: android ratingbar


    【解决方案1】:

    尝试像这样以编程方式完成

    ratingBar = ((RatingBar) findViewById(R.id.ratingBar1));
    ratingBar.setStepSize(0.5f);
    ratingBar.ratingBar.setNumStars(5);
    ratingBar.ratingBar.setMax(5);
    ratingBar.setRating(Float.parseFloat("3.5"));
    

    【讨论】:

    • 不,不工作。如果你愿意,你可以试试。我想这就是评分栏的设计方式
    • 试着改变评分栏的填充颜色,这样你就能有所不同。
    【解决方案2】:

    您只需删除项目中的工具栏。我认为工具栏中存在一些问题。我尝试如下,它有效

    ratingBar = ((RatingBar) findViewById(R.id.ratingBar1));
        ratingBar.setRating(Float.parseFloat("3.6"));
        ratingBar = ((RatingBar) findViewById(R.id.ratingBar1));
    

    【讨论】:

      【解决方案3】:

      您正在设置 stepSize="0.5"。您应该将其更改为 0.1。

      【讨论】:

      • 为什么要改?
      • 我们需要以 0.1 的间隔设置小数步长,如果你给 0.5 的间隔提供了一些时间它会被舍入。你试过 stepSize="0.1" ???
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 2014-08-25
      相关资源
      最近更新 更多