2011-12-04 28 views
2

。我正在使用加速度计,我想要另一个类ThreatForLoopA中的值x,y,z。如何从onSensorChanged获取加速度计值到类ThreatForLoopA?例如,

@Override 
public void onSensorChanged(int sensor, float[] values) { 
    // TODO Auto-generated method stub 

    x = values[0]; 
    y = values[1]; 
    z = values[2]; 

    ThreadForLoopA threadA = new ThreadForLoopA(); 

    if (sensor == SensorManager.SENSOR_ACCELEROMETER) { 
     long curTime = System.currentTimeMillis(); 

    threadA.start(); 

这是示例类ThreatForLoopA的:

public class ThreadForLoopA extends Thread{ 

TextView xacc = null; 
TextView yacc = null; 
TextView zacc = null; 

float[][] p= new float[5][3]; 
private long lastUpdate = -1; 
public float x,y,z; 
int row = 0; 

@Override 
public void run() { 
    // TODO Auto-generated method stub 

    long curTime = System.currentTimeMillis(); 

    if (lastUpdate == -1 || (curTime - lastUpdate) > 2000) { 
     lastUpdate = curTime; 

      for (int column = 0; column < 3; column++) { 
       if (column == 0) { 
        p[row][column] = x; 
        //xacc.setText("Os X: " + p[row][column]); 
       } 
       if (column == 1) { 
        p[row][column] = y; 
        //yacc.setText("Os X: " + p[row][column]); 
       } 
       if (column == 2) { 
        p[row][column] = z; 
        //zacc.setText("Os X: " + p[row][column]); 
       }} 
       if (row == 0) { 
        xacc.setText("Os X: " + p[row][0] + " " + p[row][1] +" " + p[row][2]); 
       } 

我怎样才能获得加速计值从onSensorChanged类ThreatForLoopA?

回答

1

好,通过他们在构造函数中:

ThreadForLoopA threadA = new ThreadForLoopA(x, y, z); 

...

public ThreadForLoopA(float x, float y, float z) { 
    this.x = x; 
    this.y = y; 
    this.z = z; 
} 

,使所有这些领域的私人。

相关问题