簡體   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