【问题标题】:Count function not complete计数功能未完成
【发布时间】:2017-02-04 17:38:27
【问题描述】:

我正在开发一个需要计数器的应用。我在if-clause 中有这个计数器,每次触发这个块时,它应该在当前数字上加 1(一)。因此,如果当前数字是:1 并且触发了 if 块,则当前数字应该是 2,然后是 3,以此类推......无论如何。在测试这个时,当前的数字正在变为 2,但它不会更多。我确定我写错了,但似乎找不到什么。

代码如下:

@Override
public void onSensorChanged(SensorEvent event) {
    float presure = event.values[0];
    altitude = SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, presure);
    System.out.println("altitude => " + altitude);
    Log.d("SENSOR alt: ", String.valueOf(altitude));
    int currentHigh = (int) altitude;
    int reps = 1;
    if (currentHigh > 44){
        reps = reps+1;
        mTextView.setText(String.valueOf(reps));
    }
    while(reps == 5){
        Vibrator vibrate = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
        vibrate.vibrate(500);
        break;
    }
} 

【问题讨论】:

  • 贴出整个方法!
  • 另外,这段时间有什么意义?它将根据中断执行 0 次或 1 次。改用 if。
  • 需要将reps声明为全局变量
  • 对于 onSensorChanged 事件的每一次触发,rep 变量都会重置为 1,因此它永远不会超过 2,并且只有当 onSensorChanged b>currentHight 条件实际上是满足的。使 rep 变量 Class 成为全局变量。
  • 我尝试编辑您的原始代码,尽量减少多余的空白,以便于阅读。我看到您已经编辑了您的问题,显示了更多代码,但是您没有付出一点努力来使代码格式正确。请为将来的问题付出一点努力,因为它确实会产生很大的不同,我们非常感谢您的努力。为什么要让别人的代码比必要的更难阅读和理解,对吧?

标签: java android counter


【解决方案1】:

我想reps 变量是你的计数器,因为这个代码值总是reps 具有2 值,并且此行为与您的评论相匹配:

在测试这个时,当前的数字也在改变 2 但它不会 数更多。我确定我写错了,但似乎不能 找到什么。

在这里,您将 reps 声明为局部变量,而不是实例字段。
所以在每次调用该方法时,reps 都会被覆盖:

int reps = 1;
if (currentHigh > 10) {
    reps = reps+1;
    mTextView.setText(String.valueOf(reps));
}

reps == 2 在每次通话后假设currentHigh > 10

只需将reps 声明为实例字段(在方法之外),它应该可以解决您的问题。

【讨论】:

  • 谢谢你,我没想到。但你是 100% 正确的先生!
  • 另一个问题,因为您已经在这个线程中。当我使用此函数并且 If 函数为真时,只要该函数为真,它就会计数,我应该如何设置相同的功能以获得“一个计数”而不是只要语句为真就获得计数。如果你知道我的意思..我尝试了一个 while 循环,但没有让我到达我想要的地方..
  • “我应该如何设置相同的功能来获得“一个计数”,而不是只要声明是真的就获得计数“对不起,我不确定是否理解。请问可以改写吗?
  • 字符串 currentHigh 包含海拔高度,我想在每次设备到达目标时进行计数。当运行这个 if 语句时,当高度等于 10 时计数会增加,但当高度为 10 时它也会计数。所以我如何才能在每次到达高度时获得一个计数,而不是在该高度时计数。
猜你喜欢
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
  • 2012-03-04
  • 2019-10-31
  • 2013-05-20
相关资源
最近更新 更多