2015-03-26 2 views
2

У меня есть текст редактирования, а также панель оценки в моей программе. Я проверяю, имеет ли пользователь более трех символов в тексте редактирования, а для бара рейтинга должно быть что-то большее, чем 0,5 звезды (в основном, чтобы проверить, по крайней мере, они нажали на любой из них).Оценка бара, как получить количество звезд?

final EditText commentbox = (EditText)findViewById(R.id.comment); 
    final RatingBar rating = (RatingBar)findViewById(R.id.rating); 
    final Button feedbackbutton = (Button)findViewById(R.id.submit); 


    final TextWatcher watcher = new TextWatcher(){ 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 

      if(commentbox.length() >= 3 && rating.getNumStars() >=0.5){ 
       feedbackbutton.setEnabled(true); 
       feedbackbutton.setBackgroundColor(Color.parseColor("#369742")); 
      } else { 
       feedbackbutton.setEnabled(false); 
       feedbackbutton.setBackgroundColor(Color.parseColor("#ffcacaca")); 
      } 


     } 

    }; 
    commentbox.addTextChangedListener(watcher); 
    rating.setOnRatingBarChangeListener((this)); 

Так как вы можете видеть, что это должен отвечать те условия для того, чтобы кнопки, чтобы стать включена, а также изменить цвет фона. Однако, как только я напишу более трех символов в тексте редактирования, кнопка сама включит и изменит свой цвет. Он не ищет состояние бара.

Может кто-то мне помочь, пожалуйста

ответ

2

Надеется, что это решит вашу проблему.

2

Чтобы получить оценку от номинального значения:

float ratingValue = rating.getRating(); 

Добавить слушатель:

rating.setOnRatingBarChangeListener(new OnRatingBarChangeListener() { 

      @Override 
      public void onRatingChanged(RatingBar arg0, float rateValue, boolean arg2) { 
       // TODO Auto-generated method stub 
       Log.d("Rating", "your selected value is :"+rateValue); 
      } 
     }); 
+0

Совершенных. Благодаря ! – Sadman

+0

отличный ответ. –

Смежные вопросы