获取不断变化的整数的值

时间:2015-11-29 04:29:06

标签: java android integer sensor

我正在使用安卓传感器,特别是TYPE_STEP_COUNTER。 TYPE_STEP_COUNTER返回的值不断增加,无法重置(据我所知)。我需要做的是从用户按下按钮的位置获取步数。

我愿意:

int steps = overallTotal - totalWhenButtonPressed

如何获取totalWhenButtonPressed值?

我无法totalWhenButtonPress = event.values[0]因为价值不断变化。

2 个答案:

答案 0 :(得分:0)

它应该大致像这样工作

movnt

您需要将当前传感器存储在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)); } }; 之外,以便在按下按钮后存储该值。然后简单地比较按下按钮时存储的值。

答案 1 :(得分:0)

我能够通过使用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);