2017-03-23 1 views
2

버튼 클릭시 안드로이드 단계 카운터를 재설정해야합니다. 센서가 활성화되어있는 동안 시스템이 재부팅 될 때까지 0으로 재설정하지 않고 값이 계속 증가한다는 것을 알고 있습니다.안드로이드 단계 카운터 재설정

저는 이것을 시도했지만 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));`