我写了一个关于Accelerometer的应用。移动手机时,我可以通过传感器值定义移动方向。然后当我按下按钮时,我通过一个变量比较它的值。

如果Dem == 10-> setText("You win")否则-> setText("Fail"),但始终显示Fail。

请帮助我,函数if / else无法正确运行_app android请使用Accelerometer

public class Main2Activity extends AppCompatActivity implements SensorEventListener2 {


    int Dem = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        button = (Button) findViewById(R.id.button2);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(Dem ==10) textview_6.setText("You win");
                else textview_6.setText("You lost");
            }
        });

        textview_4 = (TextView) findViewById(R.id.textView4);
        textview_5 = (TextView) findViewById(R.id.textView3);
        textview_6 = (TextView) findViewById(R.id.textView5);
        nInitialized = false;
        nSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        nAccelerometer = nSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        nSensorManager.registerListener(this,nAccelerometer,SensorManager.SENSOR_DELAY_NORMAL);
    }



    @Override
    public void onSensorChanged(SensorEvent event) {

        if (!nInitialized){

            textview_4.setText("Are you ready");
            xChange_1 = 0;
            yChange_1 = 0;
            nInitialized = true;
        }
        else {

            xChange_1 = maxX_1 - event.values[0];
            yChange_1 = maxY_1 - event.values[1];


            if ( xChange_1 > 4 ) textview_4.setText("Moving turn right");
            if ( xChange_1 <-4 ) textview_4.setText("Moving turn left");
            if ( yChange_1 > 4 ){

                textview_4.setText("Moving turn up");
                Dem = Dem +1;
                textview_5.setText("Score"+Dem);

            }
            if (yChange_1<-4){

                textview_4.setText("Moving turn Down");
                Dem = Dem -1;
                textview_5.setText("Score"+Dem);
           }
       }
    }
 }

最佳答案

如果您在Android Studio或任何IDE中工作,则可以使用断点来调试应用程序。 Breackpoint example

只需在要测试的行上单击并以调试模式(Shift + F9)运行该应用程序即可。

我确定if \ else可以正常工作。当应用程序针对breackpoint执行一行时-您将看到Dem变量的确切数量

09-25 21:08