繁体   English   中英

Android Java:正确使用搜索栏的progressValue

[英]Android java: Using a seekbar's progressValue correctly

我目前在我的应用程序中使用几个搜寻栏。 有2个给我带来麻烦。 我将这两个搜索栏的最大值都设置为10。

我将使用搜寻列的值更改代码中的2个数字。

所以基本上,我有2个具有范围的变量。 一种是蛋白质mod,可以介于0.8到1.0之间,而脂肪mod可以介于0.3到0.6之间。 我从seekbar获取progressValue并将该值转换为存储为双精度值的百分比,然后执行公式

proteinmod = proteinmod = 0.8+(progressValue/10)*0.2;
fatmod = 0.3+(progressValue/10)*0.3;

我的问题:搜寻杆仅是半功能的。 当一直向左移动时,它们是预期范围的最小值-但一直保持该值,直到搜寻栏完全最大化,然后将Proteinmod和Fatmod设置为最大值。 我尝试将textview设置为progress值,并在各种位置对其进行测试,并且progressValue确实可以正常工作。 但是由于某些原因,这些mod值不会在我想要的范围之间的其他任何地方使用值。 这是我的代码。 提前非常感谢您!

double proteinmod = 0;
double fatmod = 0;

    seekbar2.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progressValue, boolean fromUser) {
            proteinmod = 0.8+(progressValue/10)*0.2;
            tv6.setText(String.valueOf(proteinmod));
            updateOutput();
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
        }
    });

    seekbar3.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progressValue, boolean fromUser) {
            fatmod = 0.3+(progressValue/10)*0.3;
            tv6.setText(String.valueOf(fatmod));
            updateOutput();
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
        }
    });

我相信这应该是您需要的所有代码,但是如果您需要其他代码,请随时提出。

请尝试以下操作:

proteinmod = 0.8+(progressValue/10d)*0.2;

fatmod = 0.3+(progressValue/10d)*0.3;

由于progressValue和10均为Integers,因此除法结果为Integer。 将10转换为两倍应该可以解决该问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM