对不起,如果我的问题很愚蠢,但是我在从少量参数的方法调用变量时遇到了问题。
public void onAccelSensorChanged(long axisX, long axisY, long axisZ) {
accelx = axisX;
accely = axisY;
accelz = axisZ;
accelText.setText("\nACCELEROMETER: \nX: " + axisX + "nm/s^2 || Y: " + axisY + "nm/s^2 || Z: " + axisZ +"nm/s^2");
}
好的,我需要调用变量accelx,accely,accelz,但是每个代码中的其他地方..在java中有没有任何简单的方法可以做到这一点?
我需要做出类似的事情:
case 0xf41f1000: /*pongiGetAccelerateX()*/
//i need call accelX in below 'pongiGetAccelerateX method, but now it returned 0
result = spnNative.pongiGetAccelerateX(accelX);
break;
------ ---- EDIT
我的课程:
public class SPN_API implements onAccelSensorChanged{
private SPN_native spnNative;
public long accelX, accelY, accelZ;
public SPN_API() {
spnNative = new SPN_native();
}
public byte[] invoke_command(int commandId, int argsImageLength, int actualNrOfArgs) {
byte[] result = null;
switch(commandId){
case 0xf41f1000: /*pongiGetAccelerateX()*/
//i need call accelX in below 'pongiGetAccelerateX method, but now it returned 0
result = spnNative.pongiGetAccelerateX(accelX);
break;
case 0xf51f1000: /*pongiGetAccelerateY()*/
result = spnNative.pongiGetAccelerateX(accelY);
break;
case 0xf61f1000: /*pongiGetAccelerateZ()*/
result = spnNative.pongiGetAccelerateX(accelZ);
break;
}
return result;
}
@Override
public void onAccelSensorChanged(long axisX, long axisY, long axisZ) {
accelx = axisX;
accely = axisY;
accelz = axisZ;
}
}
答案 0 :(得分:0)
您可以返回值并将其作为参数传递给另一个函数,也可以在类范围内使用全局变量,以便可以从任何地方访问和更改它。
答案 1 :(得分:0)
确保您的课程implements SensorEventListener
。
然后删除onAccelSensorChange
并将其复制。
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
accelX = event.values[0];
accelY = event.values[1];
accelZ = event.values[2];
}
}