我想阅读评级栏值,同时滑动以更改文字评级值(差,不错等)我使用setOnRatingBarChangeListener
为此,但它在用户从栏中释放手指后起作用。我也试过onDragListener
但没有成功。
我确定xml中有android:isIndicator="false"
,但没有变化。
是否还有其他听众,即可立即获得评分的代码 - 因为在滑动时正确地重新绘制了星星。 提前致谢
罗马
答案 0 :(得分:2)
您必须延长RatingBar
,覆盖onTouchEvent()
并检查MotionEvent.ACTION_MOVE
个事件。
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
if (isPressed()) {
final float x = event.getX();
final float THRESHOLD = 1.0;
if (Math.abs(x - prevX) > THRESHOLD) {
getProgress(); // Now compare with previous progress
}
prevX = x;
}
}
}
答案 1 :(得分:1)
该代码在Log cat上打印当前的评级值,而它正在滑动。
final RatingBar ratingBar = (RatingBar) findViewById(R.id.rating_bar);
ratingBar.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
Log.d("LOG", String.format("%f", ratingBar.getRating());
}
return false;
}
});