Java:如何从具有多个参数的方法中调用一个参数

时间:2015-01-27 00:47:05

标签: java android

对不起,如果我的问题很愚蠢,但是我在从少量参数的方法调用变量时遇到了问题。

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;     
    }
}

2 个答案:

答案 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];
    }
}