2017-04-18 1 views
0

Ich habe eine Methode:den Wert aus einer void-Methode abrufen

@Override 

public void onSensorChanged (SensorEvent event) {

float [] values = event.values; 
    float altitude; 
    altitude = SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE,values[0]); 


} 

Wie kann ich auf den Wert von "Höhe" Zugriff von einem anderen Klasse?

danke für die Hilfe.

Antwort

0

Sie können nicht, es sieht so aus, als ob Sie Java verwenden? und Sie überschreiben eine Funktion, sodass die Rückgabe möglicherweise keine Option ist.

so eine einfache Lösung wäre, Höhe als eine Klassenvariable zu deklarieren, nicht in der Funktion und bieten eine Accessor/Geter-Funktion.

class Someclass 
{ 
    private float altitude; 

    @Override 
    public void onSensorChanged(SensorEvent event) 
    { 
     float [] values = event.values; 
     altitude = SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE,values[0]);   
    } 

    //function to get altitude 
    public float getAltitude() 
    { 
     return altitude; 
    } 
} 
+0

Ich benutze Android und ich muss den Wert eines Smartphone-Sensors (Barometer) abrufen. Ihr Vorschlag gibt immer den Wert 0 zurück. – Wima

+0

Haben Sie sichergestellt, dass die "float height" entfernt wird? Linie von der Funktion? und bist du sicher, dass es richtig eingestellt ist? es bleibt wie 0, bis die onSensorChanged-Funktion aufgerufen wird – jkozlowski

+0

Ja bin ich sicher über diese Änderungen und hier die Klasse, wo ich auf den Höhenwert zugreifen – Wima

Verwandte Themen