获取不断变化的整数的值

Getting the value of a constantly changing integer

我正在使用 android 个传感器,特别是 TYPE_STEP_COUNTER。 TYPE_STEP_COUNTER 返回的值不断增加,并且没有办法重置它(据我所知)。我需要做的是获取从用户按下按钮开始所采取的步数。

我会做:

int steps = overallTotal - totalWhenButtonPressed

如何获取 totalWhenButtonPressed 值?

我做不到totalWhenButtonPress = event.values[0],因为值一直在变化。

大致应该是这样的

private int mLatestValue;
private int mButtonPressedValue;

void onCreate(..) {
    Sensor stepCtr = sm.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
    sm.registerListener(mSensorCounter, stepCtr, SensorManager.SENSOR_DELAY_NORMAL);
    Button button = button.setOnClickListener(mButtonClick);
}

private OnClickListener mButtonClick = new OnClickListerner() {
    public void onClick(View view) {
        mButtonPressedValue = mLatestValue;
    }
}
private SensorEventListener mSensorCounter = new SensorEventListener() {
    public void onSensorChanged(SensorEvent event) {
        mLatestValue = Math.round(event.values[0]);
        txtStepVals.setText("CurrSteps = " + mLatestValue + "\nSteps: " + (mLatestValue - mButtonPressedValue));
    }
};

您需要将电流传感器存储在 SensorEventListener 之外,以便您可以在按下按钮后存储该值。然后简单地与按下按钮时存储的值进行比较。

我能够使用 TYPE_STEP_DETECTOR 解决问题。我没有尝试在某个时间点获取数字,而是在操作发生时更新了数字。以下代码来自SensorEventListener

的onSensorChanged方法
currSteps = currSteps + Math.round(event.values[0]);
        TextView txtSessionStepVals = (TextView) findViewById(R.id.txtSessionStepValues);
        txtSessionStepVals.setText("Steps this Session: " + currSteps);