2016-05-19 156 views
0

當我點擊App中的RatingBar時,下面的代碼不起作用。請幫助...Onclick屬性不適用於Android的RatingBar

注意:我已經設置了RatingBar Onclick的屬性。

public void rate(View v) { 
    RatingBar r1 = (RatingBar)findViewById(R.id.ratingBar); 
    Toast.makeText(MainActivity.this, String.valueOf(r1.getRating()) ,Toast.LENGTH_SHORT).show(); 

} 

Rating Bar and Properties Panel

+1

參考http://stackoverflow.com/questions/3443939/ratingbar-onclick – sasikumar

+0

public void On ** C ** lickListener'C'是大寫 –

+0

嗨petrov,代碼工作。我想知道關於費率函數 – Ramakant

回答

1

看來你想,只要用戶設置的評級被告知,所以你需要OnRatingBarChangeListener沒有OnClickListener

ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() { 

    @Override 
    public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { 

    } 
}); 

注:方法OnClickListener接口onClick是越來越被稱爲performClick()另一種方法調用。此方法在View類中聲明,所以單擊事件全部在View類中處理。但RatingBar覆蓋內部觸摸事件回調,並且不允許通知根類(即View)。因此,底層View無法檢測點擊事件。不過,解決方法可能在this post

+0

但我想通過OnClick屬性運行。 – Ramakant

0

Onclick屬性不起作用的原因是RatingBar覆蓋onTouchEvent()。所以ratingBar.setOnClickListener()永遠不會被調用。

使用OnTouchListener而不是onClickListener