Onclick属性在Android中不适用于RatingBar
当我在应用程序中单击RatingBar时,下面的代码不起作用。请帮忙 注意:我已将RatingBar的属性设置为单击rate。Onclick属性在Android中不适用于RatingBar,android,android-studio,Android,Android Studio,当我在应用程序中单击RatingBar时,下面的代码不起作用。请帮忙 注意:我已将RatingBar的属性设置为单击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();
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()
的方法调用。此方法在视图
类中声明,因此单击事件所有在视图
类中处理。但是,RatingBar
覆盖内部触摸事件回调,不允许通知根类(即视图
)。因此,底层的视图
无法再检测单击事件。不过,可能存在一种解决方法。Onclick属性不起作用的原因是分级栏
覆盖onTouchEvent()
。因此,永远不会调用ratingBar.setOnClickListener()
使用
OnTouchListener
而不是onClickListener
在C上引用公共无效Listener“C”是大写字母Hi petrov,该代码正在工作。我想知道rate函数Hi sasikumr,我想以这种方式运行,而不是通过侦听器运行,但我想通过OnClick属性运行。
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
}
});