Ich erstelle eine Schritt-Zähler, die ich täglich die SensorEvent.sensor
& Sensor.TYPE_STEP_COUNTER
mit zurücksetzen möchten. Ich weiß, dass dies möglich sein sollte, indem Sie den Anfangswert des Arrays speichern und den aktuellen Wert subtrahieren. Das Problem ist, dass Arrays unveränderlich sind. Gibt es eine Problemumgehung, um ein Array gegen sich selbst zu subtrahieren, um 0 zu bekommen, aber trotzdem zu zählen?Shop Anfangswert von ‚SensorEvent.sensor‘ Array
Mein aktueller Code setzt den Wert auf 0, zählt aber nicht, da beide Variablen aus demselben Array stammen.
@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);
}
}