当我在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();
}
最佳答案
似乎您希望在用户设置评分时得到通知,因此您需要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/