Je suis prêt à être humilié à ce sujet, mais je ne suis pas sûr de ce qui ne va pas. Je suis juste en train de jouer avec le développement Android et je fais juste une application simple qui va imprimer un accéléromètre à un TextView.Android SensorEventListener syntaxe
Lors de la création du SensorEventListener, je reçois une erreur de syntaxe
(dit, est nécessaire pour terminer la déclaration)
code exact en question:
private SensorEventListener listener = new SensorEventListener() {
public void onSensorChanged(SensorEvent e) {
if (e.sensor.getType()==Sensor.TYPE_ACCELEROMETER) {
xAxis = e.values[0];
yAxis = e.values[1];
zAxis = e.values[2];
if (xThreshold > xAxis || yThreshold > yAxis || zThreshold > zAxis) {
alertUser(values);
}
else {
nonAlert(values);
}
}
}
}
est un code complet ici si nécessaire
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
public class TiltMeter {
private SensorManager mgr = null;
private double xAxis = 0;
private double yAxis = 0;
private double zAxis = 0;
private double xThreshold = 0;
private double yThreshold = 0;
private double zThreshold = 0;
public TiltMeter(Context context, double xThreshold, double yThreshold, double zThreshold, TiltMeter.Callback cb) {
this.xThreshold = xThreshold;
this.yThreshold = yThreshold;
this.zThreshold = zThreshold;
mgr = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
mgr.registerListener(listener, mgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_UI);
}
private SensorEventListener listener = new SensorEventListener() {
public void onSensorChanged(SensorEvent e) {
if (e.sensor.getType()==Sensor.TYPE_ACCELEROMETER) {
xAxis = e.values[0];
yAxis = e.values[1];
zAxis = e.values[2];
if (xThreshold > xAxis || yThreshold > yAxis || zThreshold > zAxis) {
alertUser(values);
}
else {
nonAlert(values);
}
}
}
}
public void close() {
mgr.unregisterListener(listener);
}
public interface Callback {
double[] alertUser(double[] data);
double[] nonAlert(double[] data);
}
}
et voici l'activité:
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class TiltMeterActivity extends Activity
implements TiltMeter.Callback {
/** Called when the activity is first created. */
TiltMeter tiltMeter = null;
TextView tvXAxis;
TextView tvYAxis;
TextView tvZAxis;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tvXAxis = (TextView)findViewById(R.id.txtXAxisValue);
tvYAxis = (TextView)findViewById(R.id.txtYAxisValue);
tvZAxis = (TextView)findViewById(R.id.txtZAxisValue);
}
@Override
public void onDestroy() {
super.onDestroy();
tiltMeter.close();
}
public double[] alertUser(double[] data) {
tvXAxis.setText(Double.toString(data[0]));
tvYAxis.setText(Double.toString(data[1]));
tvZAxis.setText(Double.toString(data[3]));
return null;
}
public double[] nonAlert(double[] data) {
tvXAxis.setText(Double.toString(data[0]));
tvYAxis.setText(Double.toString(data[1]));
tvZAxis.setText(Double.toString(data[3]));
return null;
}
}
merci pour toute aide. ceci est ma référence: reference project
Ahh ... eh bien je suis un idiot. Devinez éclipse prend un moment à rafraîchir parfois. Merci mbaird –