计数功能未完成
Count function not complete
我正在开发一个需要计数器的应用程序。我在 if
子句中有这个计数器,每次触发这个块时,它应该将 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;
}
}
我想 reps
变量是您的计数器,因为此代码值始终 reps
使用 2
值,此行为与您的评论相符:
While testing this the current number is changing too 2 but it wont
count more. Im sure I have written something wrong but can't seem to
find what.
在这里你声明reps
作为局部变量而不是实例字段。
因此,在每次调用该方法时,reps
都会被覆盖:
int reps = 1;
if (currentHigh > 10) {
reps = reps+1;
mTextView.setText(String.valueOf(reps));
}
reps == 2
每次调用后假设 currentHigh > 10
.
只需将 reps
声明为实例字段(在方法之外),它应该可以解决您的问题。
我正在开发一个需要计数器的应用程序。我在 if
子句中有这个计数器,每次触发这个块时,它应该将 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;
}
}
我想 reps
变量是您的计数器,因为此代码值始终 reps
使用 2
值,此行为与您的评论相符:
While testing this the current number is changing too 2 but it wont count more. Im sure I have written something wrong but can't seem to find what.
在这里你声明reps
作为局部变量而不是实例字段。
因此,在每次调用该方法时,reps
都会被覆盖:
int reps = 1;
if (currentHigh > 10) {
reps = reps+1;
mTextView.setText(String.valueOf(reps));
}
reps == 2
每次调用后假设 currentHigh > 10
.
只需将 reps
声明为实例字段(在方法之外),它应该可以解决您的问题。