如何使用Accelerometer值显示数字

时间:2014-01-15 14:04:03

标签: java android accelerometer

我对android很新,所以如果我问一个死的简单问题,请原谅我。

基本上我想做的是显示一个数字。当Y的值时,event.value [1]介于1和7之间。

我可以显示X Y Z位置的值。但是只要我添加if语句来检查我的应用程序是否停止工作(参见下面的代码)

我真的需要有人帮忙。

感谢您的帮助。

public void onSensorChanged(SensorEvent event) {
    // TODO Auto-generated method stub

float x = event.values[0];
float y = event.values[1];
float z = event.values[2];

int YValueMin = 1;
int YValueMax = 7;

accelero.setText("X: "+event.values[0]+
        "\nY: "+event.values[1]+
        "\nZ: "+event.values[2]);

if (y >= YValueMin && y <= YValueMax ){

    RepCounter.setText("1");

    }
else {
    RepCounter.setText(" ");
}
}

1 个答案:

答案 0 :(得分:2)

logcat在崩溃时会说什么?

您的RepCounter极有可能为空,您可以使用调试器进行检查。

编辑:请将您的代码更改为以下内容,这可能是一个解决方案。如果没有,我将需要完整的源代码,以确保RepCounter不是类或未初始化的对象。

public void onSensorChanged(SensorEvent event)
    {
        if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
        {
            float x = event.values[0]; 
            float y = event.values[1]; 
            float z = event.values[2];
            int YValueMin = 1; 
            int YValueMax = 7;

            accelero.setText("X: " + event.values[0] + "\nY: " + event.values[1] + "\nZ: " + event.values[2]);
            if(y >= YValueMin && y <= YValueMax)
            {
                RepCounter.setText("1");
            }
            else
            {
                RepCounter.setText(" ");
            }
        }
    }