Android 重置步骤计数并从0开始计算步骤
我有一个计步器,可以完美地计算设备传感器的步数。我想在移动到另一个活动时将步骤计数重置为0,并从0而不是之前的步骤计数开始步骤计数 我试图保存我的初始步数,并从当前传感器数据中减去它,但步数没有计算出来,它只显示了0和1 这是我的密码:Android 重置步骤计数并从0开始计算步骤,android,android-sensors,Android,Android Sensors,我有一个计步器,可以完美地计算设备传感器的步数。我想在移动到另一个活动时将步骤计数重置为0,并从0而不是之前的步骤计数开始步骤计数 我试图保存我的初始步数,并从当前传感器数据中减去它,但步数没有计算出来,它只显示了0和1 这是我的密码: Activity1.java private String Initial_Count_Key = "FootStepInitialCount"; public View onCreateView(LayoutInflater inflater,
Activity1.java
private String Initial_Count_Key = "FootStepInitialCount";
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
SharedPreferenceManager.singleton().save(Initial_Count_Key,total_step);}
这是我想重置步骤的activity2。我也为它写了一个方法,但我认为我做错了什么
Activity2.java
private void countStep() {
mIntialSteps = (SharedPreferenceManager.singleton().getInt("FootStepInitialCount"));
mUpdatedSteps = StepDetector.CURRENT_SETP - mIntialSteps;
Log.i("Updated_Steps", String.valueOf(mUpdatedSteps));
if (mUpdatedSteps % 2 == 0) {
mStepCountValue = mUpdatedSteps;
} else {
mStepCountValue = mUpdatedSteps + 1;
}
mStepCountValue = mUpdatedSteps ;
}
有人能告诉我我做错了什么吗?因为从您的代码中,我可以看到您正在共享首选项中存储步骤计数。因此,如果你正在进行另一项活动。就在新活动的写作意图之前。在那里将总步数设置为零 SharedReferenceManager.singleton().save(初始计数键,0)
然后进行其他活动。这样,当您返回此活动时,yui将初始化您的UI,即根据此首选项值初始化步骤计数UI不太清楚您的要求。“它对我不起作用。”你的
countStep
方法很奇怪,你使用一个条件来设置mStepCountValue
值,然后在if esle
之后再次设置值。。。ps:您只需执行mStepCountValue=mUpdatedSteps+mUpdatedSteps%2
@AxelH我知道它看起来很奇怪,但我从github获得了这个方法,它工作正常,所以我使用了它。但现在我遇到了这个步骤重置问题。@GauravTiwari,这段代码只有一个可能的结果:mStepCountValue=mUpdatedSteps
,在每次计数时检查mIntialSteps
的值,您可能会以某种方式覆盖或StepDetector。当前设置p
从未更新(它来自何处?(并将该键设置为public final static,以便在活动2
中使用)PS:Github不是一个工作代码库,而是一个可以存放任何东西的存储库,无论是否工作。@AxelH我找到了解决方案。谢谢你的指导。