[android]计数功能不全

标签: Java Android
发布时间: 2017/3/19 18:25:45
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正在开发一个应用程序中,我需要一个计数器。我有此计数器内的 if -子句和每个 time 触发此块它应该将 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;
    }
} 

解决方法 1:

我想 reps 变量是此代码的价值观总是你计数器 reps2 值和这种行为与你的评论相匹配︰

这测试的当前数目时改变太 2,但它不会数数更多。我肯定我有什么写错但似乎找不到什么。

在这里您将声明 reps 作为一个本地变量而不是实例字段。
所以在每次调用该方法, reps 将被覆盖︰

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

reps == 2后通过假设每次调用 currentHigh > 10

刚刚宣布 reps 作为一个实例方法) (外地和它应该解决你的问题。

官方微信
官方QQ群
31647020