2017-03-23 7 views
2

ボタンクリックでアンドロイドステップカウンターをリセットする必要があります。私はセンサーが作動している間、システムが再起動されるまでゼロにリセットせずに値が増加し続けることを知っています。Androidのステップカウンターをリセットする

私はこれを試しましたが、0しか表示されません。

SharedPreferences prefs = getActivity().getSharedPreferences(MY_PREFS, MODE_PRIVATE); 
     stepsAtReset = prefs.getInt("stepsAtReset", 0); 

btnStart.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       isPaused = false; 
       isStopped = false; 
       activityRunning = true; 

       //Disable the start and pause button 
       btnStart.setEnabled(false); 
       btnResume.setEnabled(false); 
       //Enabled the pause and stop button 
       btnPause.setEnabled(true); 
       btnStop.setEnabled(true); 

       stepsAtReset = stepsInSensor; 
       SharedPreferences.Editor editor = getActivity().getSharedPreferences(MY_PREFS, MODE_PRIVATE).edit(); 
       editor.putInt("stepsAtReset", stepsAtReset); 
       editor.commit(); 
       // you can now display 0: 
       count.setText(String.valueOf(0)); 

      } 
     }); 


    @Override 
    public void onSensorChanged(SensorEvent event) { 

     if (isPaused || isStopped) { 
      Log.d("MAINFRAG", "pause or stopped"); 

     } else{ 
      if(activityRunning){ 
       count.setText(String.valueOf(event.values[0])); 
       int stepsSinceReset = stepsInSensor - stepsAtReset; 

       count.setText(String.valueOf(stepsSinceReset)); 
      }else{ 
       event.values[0] = 0; 
      } 

     } 
    } 

答えて

1

まず、あなたは、あなたがあなたのVARをリセットする必要があり、県にデータを保存する必要がゼロ `

  editor.commit(); 
      stepsAtReset = 0 
      count.setText(String.valueOf(stepsAtReset));` 
関連する問題