Android Slider / SeekBar增量值

时间:2015-10-14 16:45:59

标签: android slider seekbar

我在android中使用sliderslider用于捕获百分比,因此最小值为0%,最大值为100%。我已经编写了代码来这样做。我现在希望将滑块递增/递减1%,我还希望将实际值写入SQLite DB。我没有将值输出到EditText,我只需要知道如何从滑块获取值,我很难找到我理解的文档。

请看下面的方法。任何人都可以请求协助,因为我不知道如何完成这项工作。

提前谢谢大家。

private static void pebbleTypeHandlerPercentage(Pebble pebble, LinearLayout layout, Context context, String key, PData value)
{
    int id = getNextId();
    getLabel(layout, context, value);

    SeekBar seekBar = new SeekBar(context);
    seekBar.setMax(100);
    seekBar.setId(id);
    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
    {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
        {
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar)
        {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar)
        {

        }
    });

    layout.addView(seekBar);
}

1 个答案:

答案 0 :(得分:0)

为了获得当前设置的进度条的值,您可以在侦听器中使用onProgressChanged方法。 “progress”值是进度条的当前值。布尔值“fromUser”可用于确定是否使用setProgress更新了值,或者用户通过拖动拇指来更改值。根据您尝试完成的内容,如果使用简单的if语句从用户更改该值,则可以忽略该值:

if(fromUser){`
`return;
}

现在,为了避免在UI线程上进行大量更新,您可以使用Handler捕获并发布从onProgressChanged方法更改的位置,或者只是将该方法的进度值保存到某个外部变量并执行更新“onStopTrackingTouch”方法