2011-12-04 3 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に加速度値を取得できますか?

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

...

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

をし、すべてのこれらのフィールドをプライベートにする:

答えて

1

まあ、コンストラクタに渡します。

関連する問題