Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Onclick属性在Android中不适用于RatingBar_Android_Android Studio - Fatal编程技术网

Onclick属性在Android中不适用于RatingBar

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();

当我在应用程序中单击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();

}

似乎您希望在用户设置评级时得到通知,因此您需要
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) {

    }
});