当我在App中单击RatingBar时,以下代码不起作用。请帮忙...

注意:我已使用rate设置RatingBar Onclick的属性。

public void rate(View v) {
    RatingBar r1 = (RatingBar)findViewById(R.id.ratingBar);
    Toast.makeText(MainActivity.this, String.valueOf(r1.getRating()) ,Toast.LENGTH_SHORT).show();

}


android - Onclick属性无法在Android中使用RatingBar-LMLPHP

最佳答案

似乎您希望在用户设置评分时得到通知,因此您需要OnRatingBarChangeListener而不是OnClickListener

ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

    @Override
    public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {

    }
});


注意:onClick接口的OnClickListener方法被另一个称为performClick()的方法调用。此方法在View类中声明,因此click事件全部在View类中处理。但是RatingBar会覆盖内部触摸事件回调,并且不允许通知根类(即View)。因此,基础View无法再检测点击事件。不过,解决方法仍可以在this post中。

关于android - Onclick属性无法在Android中使用RatingBar,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37319189/

10-13 05:00