0

你好,我建立了一个需要对照片进行评分并在评分栏上进行平均的应用程序现在我想设置如果我没有在评分栏上选择任何内容,那么它就不会更新到照片数据平均值,就像让我们说 raiting酒吧在 3/5 开始 ( * ) 所以如果我点击它不会更新数字 '3'

 @Override
        public void onClick(DialogInterface dialog, int id) {
            rate = ratingBar.getRating();
            if(ratingBar.?? hes not been clicked ??)
             {

              }
              else{
            upDate();
              }
            textView.setText(String.valueOf(photosRatingInfo.getRate()));
            //Logic
        }

抱歉描述不佳):

4

2 回答 2

0

如果您不想像我在评论中建议的那样从 0 开始栏,您可以做两件事:

从 RatingBar 派生并覆盖 onTouchEvent()

使用 OnTouchListener,如下所示:

ratingBar.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_UP) {
            // TODO perform your averaging action here
        }
        return true;
}
于 2013-10-19T16:58:01.513 回答
0
<RatingBar
        android:id="@+id/ratingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:stepSize="1.0"
        android:rating="3.0" />  

这里我设置了默认评分 3.0

RatingBar ratingBar;//在这里初始化你的 RatingBar

使用setOnRatingBarChangeListener监听器

ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
                        public void onRatingChanged(RatingBar ratingBar,
                                float rating, boolean fromUser) {
                            String answerValue = String
                                    .valueOf((int) (ratingBar.getRating()));
                        }
                    });
于 2013-10-19T17:04:46.377 回答