![](/img/trans.png)
[英]Trying to sen the progressValue of seekBar to server using OSC/UDP
[英]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.