2017-07-28 34 views
1

我有兩個seekbars和基於他們的價值我正在做一些數學,並把結果放在一個文本視圖。當我改變seekbar的進度時,textview是「閃爍的」,我想這是正常的,因爲這個值被刪除並且插入了一個新的值。在模擬器上安裝代碼,在某些情況下,釋放seekbar後計算的值將消失。將代碼放到設備上後,該值甚至不再顯示。問題是什麼? 下面是一些代碼:基於seekbar的計算值不顯示在文本視圖

weight = weightSeekBar.getProgress(); 
height = ((double) heightSeekBar.getProgress()) /100; 
double bMI = weight/(height*height); 
bMIValueText.setText("BMI value: " + bMI); 
Log.d(TAG,"weight= " + weight + " height= " + height + " BMI = " + bMI); 

注:每次更改後顯示的「BMI值」文本。此代碼在Seekbar監聽器的實現

public void onProgressChanged(SeekBar seekBar, int i, boolean b) 

方法。

+1

TextView是否足夠寬以正確顯示具有長十進制表示形式的值?嘗試格式化「bMI」的值以顯示小數點後的固定位數。 – SpaceBison

+0

打印日誌中的bMI值 –

+0

@MMMM您可以發佈您用於seekbar的值嗎?我猜這個問題與您的值有關。 –

回答

1

對於具有較長小數表示形式的值,TextView可能不夠寬,導致文本消失。您可以限制小數點後的位數,以便它始終適合(例如,使用String.format())。

-1

很難理解給定的代碼量,但如果您想在運行時更改UI的某些部分(視圖),則需要使用Handler。

+0

我不認爲這可以成爲這個問題的答案。 – MMMM

相關問題