我正在创建一个步骤计数器,我希望每天使用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);
}
}
答案 0 :(得分:0)
将初始值存储在全局中,并在每次获得更新时将其减去。