2016-04-07 38 views
0

我在創建一個步進計數器,我想每天使用SensorEvent.sensor & Sensor.TYPE_STEP_COUNTER重置。我知道這應該可以通過保存數組的初始值並減去當前值。問題是數組是不可變的。有沒有一個解決方法,以減去一個數組本身獲得0,但仍然使其數?'SensorEvent.sensor'的存儲初始值陣列

我當前的代碼將該值設置爲0,但不會計數,因爲這兩個變量來自同一個數組。

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    myView = inflater.inflate(R.layout.skritt, container, false); 
    textView = (TextView) myView.findViewById(R.id.skrittText); 

    mSensorManager = (SensorManager) getActivity().getSystemService(Context.SENSOR_SERVICE); 
    mStepCounterSensor = mSensorManager 
      .getDefaultSensor(Sensor.TYPE_STEP_COUNTER); 
    mStepDetectorSensor = mSensorManager 
      .getDefaultSensor(Sensor.TYPE_STEP_DETECTOR); 
     return myView; 

}  

public void onSensorChanged(SensorEvent event) { 
    Sensor sensor = event.sensor; 
    float[] values = event.values; 

    int value = -1; 
    final int value1 =(int) values[0]; 
    int value2 = 0; 


     if (values.length > 0) { 
      value = (int) values[0]; 
     } 


     if (sensor.getType() == Sensor.TYPE_STEP_COUNTER) { 
      value2 = value - value1; 

      textView.setText("" + value2); 

     } else if (sensor.getType() == Sensor.TYPE_STEP_DETECTOR) { 
      // For test only. Only allowed value is 1.0 i.e. for step taken 
      textView.setText("" + value); 
     } 
} 

回答

0

將初始值存儲在全局中,並在每次獲取更新時將其減去。