2 votes

Comment puis-je obtenir les valeurs de l'accéléromètre à partir de onSensorChanged dans la classe ThreatForLoopA ?

Par exemple. Je travaille avec un accéléromètre et je veux les valeurs x,y,z dans une autre classe 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();

Voici l'exemple de la classe 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]);
                }

Comment puis-je obtenir les valeurs de l'accéléromètre à partir de onSensorChanged dans la classe ThreatForLoopA ?

1voto

JB Nizet Points 250258

Et bien, passe-les dans le constructeur :

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

...

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

et rendre tous ces champs privés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X