4

スライドしながら評価バーの値を読み、テキストの評価値を変更したい(悪い、良いなど)setOnRatingBarChangeListenerこれに使用していますが、ユーザーがバーから指を離した後に機能します。私も試しonDragListenerましたが、成功しませんでした。確かに私はandroid:isIndicator="false"xmlにありますが、変更はありません。

他にリスナー、評価を即座に取得するためのコードはありますか?スライド中に星が正しく再描画されるためです。前もって感謝します

ローマ人

4

2 に答える 2

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;
            }
    }
}
于 2012-12-04T13:32:26.603 に答える
1

そのコードは、スライドしている間、評価の現在の値をLogcatに出力します。

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;
        }
});
于 2016-04-20T19:06:04.593 に答える