当我点击App中的RatingBar时,以下代码无效。请帮忙......
注意:我已将RateBar Onclick的属性设置为rate。
public void rate(View v) {
RatingBar r1 = (RatingBar)findViewById(R.id.ratingBar);
Toast.makeText(MainActivity.this, String.valueOf(r1.getRating()) ,Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:1)
似乎您希望每当用户设置评分时都会收到通知,因此您需要OnRatingBarChangeListener
而不是OnClickListener
。
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
}
});
注意:<{strong> onClick
OnClickListener
接口的方法被另一个名为performClick()
的方法调用。此方法在View
类中声明,因此click事件all在View
类中处理。但是RatingBar
会覆盖内部触摸事件回调,并且不允许通知根类(即View
)。因此,基础View
无法再检测到点击事件。不过,解决方法可能在this post。
答案 1 :(得分:0)
Onclick
属性不起作用的原因是RatingBar
覆盖onTouchEvent()
。所以永远不会调用ratingBar.setOnClickListener()
。
使用OnTouchListener
代替onClickListener
。