2017-08-25 2 views
-1

J'ai donc une barre de recherche que je veux afficher ou définirProgress la valeur de ce que je reçois de SharedPreferences String, mais comme je ne peux pas utiliser de décimales, je ne suis pas sûr à 100% comment le faire, Quelqu'un peut me diriger dans la bonne direction?Android set seekbar avec décimal

String BarValue = "3.5"; 

Bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     float value = 0; 

     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){ 
      value = ((float)progress/5); 
     } 

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

     public void onStopTrackingTouch(SeekBar seekBar) { 
      SharedPreferences.Editor e = sp.edit(); 
      e.putString("barValue", String.valueOf(value)); 
      e.apply(); 
     } 
    }); 

Répondre

0

Android Seekbar ne prend pas en charge float, utilisez donc entier dans Seekbar et convertissez cela pour flotter comme vous voulez. Je pense que c'est le meilleur moyen.

Par exemple, si vous souhaitez utiliser des valeurs décimales simples comme vous pouvez définir 11,6 116 (11,6 * 10) au Seekbar, et sur la récupération diviser par 10. Cela fera l'affaire.