2015-01-27 122 views
-1

對不起,如果我的問題是愚蠢的,但我有調用變量從幾個參數的方法的問題。Java:如何從具有多個參數的方法調用一個參數

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; 

------ ----編輯

我的類:

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

他們在哪裏的代碼?同一班還是其他班?請輸入聲明這些變量的代碼以及兩個類之間的關係(如果是單獨的) – TheUknown 2015-01-27 00:49:16

回答

0

您可以返回值和將它作爲參數傳遞給另一個函數,或者可以在類作用域中使用全局變量,以便可以從任何地方訪問和更改它。

+0

我添加了完整的我的類的代碼。也許現在你可以幫助我。 :) – izek 2015-01-27 01:12:06

+0

代碼看起來很好,怎麼了? – 2015-01-27 01:17:02

+0

你知道,它們是在類中全局定義的,所以所有的方法都可以訪問它們。 – 2015-01-27 01:17:54

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]; 
    } 
} 
相關問題