存储'SensorEvent.sensor'数组

时间:2016-04-07 03:04:25

标签: java android arrays android-studio

我正在创建一个步骤计数器,我希望每天使用SensorEvent.sensor& Sensor.TYPE_STEP_COUNTER。我知道这可以通过保存数组的初始值并减去当前值来实现。问题是数组是不可变的。是否有一种解决方法可以将数组与自身相减以得到0,但仍然可以计算它?

我当前的代码将值设置为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);
        }
}

1 个答案:

答案 0 :(得分:0)

将初始值存储在全局中,并在每次获得更新时将其减去。