使用循环将int转换为字符串然后返回int

0 java string int android loops

这是代码

@Override
  public void onSensorChanged(SensorEvent event) {
    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
      getAccelerometer(event);
    }

  }

  private void getAccelerometer(SensorEvent event) {
    float[] values = event.values;
    //Movement
    float x = values[0];
    float y = values[1];
    float z = values[2];

    float accelationSquareRoot = (x * x + y * y + z * z)
        / (SensorManager.GRAVITY_EARTH * SensorManager.GRAVITY_EARTH);
    long actualTime = System.currentTimeMillis();
    if (accelationSquareRoot >= 2) //
    {
      if (actualTime - lastUpdate < 200) {
        return;
      }


      if (distance <= 50 && distance > 40) {
        view.setBackgroundColor(Color.GREEN);
        while (distance > 0) {
              distance--;
              Integer.toString(distance);
              lastUpdate = actualTime;
              Toast.makeText(this, distance, Toast.LENGTH_SHORT)
                  .show();
              int distance = Integer.parseInt(distance);


        }

        if (distance < 40){
            view.setBackgroundColor(Color.YELLOW);
        }



      } else {
          view.setBackgroundColor(Color.RED);

      } 
      color = !color;
    }
  }
Run Code Online (Sandbox Code Playgroud)

每次摇动设备时,我都会尝试使用距离变量进行缩小和查看.

这是代码出错的地方.

  int distance = Integer.parseInt(distance);
Run Code Online (Sandbox Code Playgroud)

它要我改变变量的名称.如果我这样做,我的循环将无法正常工作.

提前致谢!

Kar*_*arl 5

你为什么不离开的距离为int值,并使用String.format()你的Toast呢?即

Toast.makeText(this, String.format("%d", distance), Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

从UI的角度来看,我不确定我是否希望在循环的每次迭代中发送Toast消息,可能更新TextView小部件可能会更好.