java - 函数If/else无法正确运行_app android使用加速度计

标签 java android

我编写了一个关于加速度计的应用程序。当您移动手机时,我可以通过传感器值定义移动方向。然后当按下按钮时我将其值与变量进行比较。

If Dem == 10 -> setText("You win") else -> setText("Fail") 但总是显示 Fail。

请帮助我,函数 If/else 无法正确运行_app android 使用加速计

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

只需单击要测试的行并在 Debug模式下运行应用程序 (Shift+F9)。

我确信 if\else 工作得很好。当应用程序针对断点执行行时 - 您将看到 Dem 变量的具体数量

关于java - 函数If/else无法正确运行_app android使用加速度计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56834016/

相关文章:

java - 如何强制键盘出现?

java - 不满意的依赖异常 : Error creating bean with name 'procjectController' : Unsatisfied dependency expressed through field

java - 如何正确生成JsonArray?

java - Kotlin 类作为 junit 测试运行,即使它在 androidTest 包中 - 对于 Java 类它正常运行

java - SQL java 选择本月添加的所有记录

android - 如何在最后一个订阅者退订后延迟拆除共享的、无限的 Observables

android - 以编程方式单击通知操作按钮

Android array-list 国家货币列表

java - 原始文件未显示在android studio中

没有 Activity 的Android Context?和其他无 Activity 编程?