2016-06-24 10 views
1

私は下部にタイマーを制御するSeekbarを持っています。私がシークバーを動かすと、なぜ値が10進数で表示されないのでしょうか?ここでなぜ小数点はありませんか?

はコードがあなたの分と秒intとして宣言された変数を持って

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     SeekBar timeController = (SeekBar) findViewById(R.id.timeController); 
     final TextView tV = (TextView) findViewById(R.id.tV); 

     timeController.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
      @Override 
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 

       int minutes = progress/60; 
       int seconds = progress - minutes*60; 

       tV.setText(String.valueOf(minutes) + ":" +String.valueOf(seconds)); 
      } 

      @Override 
      public void onStartTrackingTouch(SeekBar seekBar) { 

      } 

      @Override 
      public void onStopTrackingTouch(SeekBar seekBar) { 

      } 
     }); 
    } 
} 
+0

これらはintとして定義されます。任意の10進値を保持していますか?また、secondsを 'progress%60'に設定することもできます。それが速いのかどうかは分かりませんが、それが何をしているのかを見るのは簡単です。 –

+0

私はdoubleに変更しようとしましたが、0.0から1.0、次に2.0になります – Junaid

+0

進捗状況がintであるようですので、最も近い秒より正確な方法があるとは思いません:https:// developer.android.com/reference/android/widget/SeekBar.OnSeekBarChangeListener.html –

答えて

0

です。小数を表示するにはdoubleに変更します。

+0

私は二重に変更しようとしましたが、0.0から1.0、次に2.0になります – Junaid

+0

進捗を2倍にしてみてください – adao7000

関連する問題