滑动时获得RatingBar值

时间:2012-12-04 12:54:28

标签: android ratingbar

我想阅读评级栏值,同时滑动以更改文字评级值(差,不错等)我使用setOnRatingBarChangeListener为此,但它在用户从栏中释放手指后起作用。我也试过onDragListener但没有成功。 我确定xml中有android:isIndicator="false",但没有变化。

是否还有其他听众,即可立即获得评分的代码 - 因为在滑动时正确地重新绘制了星星。 提前致谢

罗马

2 个答案:

答案 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;
        }
});