2016-04-26 60 views
0

我想要的值傳遞給回調函數在我的代碼, 我傳遞我的callback到另一個功能,我希望它返回callback的狀態,如何在android studio中爲Callable函數傳遞一個值?

這裏是我的功能,我發出>

wifiWrapper myWifiWrapper = new wifiWrapper(); //- INIZILIZING WIFI 
        myWifiWrapper.checkWifiState(this, wifiStateCallback); 

這裏是在wifiWrapper類我的最終功能>

//checks if the wifi is On or Off 
    public void checkWifiState (Context context, Callable callback) { 


     WifiManager wifi = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); 

     boolean isOn; 


     if (wifi.isWifiEnabled()){ 

      Toast.makeText(context.getApplicationContext(), "Your Wi-Fi is enabled", //wifi is enabled 
        Toast.LENGTH_SHORT).show(); 
      isOn = true; 

     } else { 

      Toast.makeText(context.getApplicationContext(), "Your Wi-Fi is disabled", //wifi is disabled 
        Toast.LENGTH_SHORT).show(); 
      isOn = false; 

     } 



     try { //trys to call back to the callable function 
      callback.call(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 


    } 

,這裏是我的贖回,我是路過>

//callback for the ifiState 
    Callable wifiStateCallback = new Callable() { 
     @Override 
     public Boolean call() throws Exception { 


      return null; 
     } 
    }; 

問題是 我想將isOnState傳遞到callable,似乎並不能使它發揮作用。 我添加

callback.call(isOn); 

,但它不工作,它說,它不能應用於

+1

你從來沒有解釋你正面臨與此代碼的問題。 –

+0

你能解釋一下你的問題究竟是什麼? –

+0

如果你說你可調用不包含布爾值,那麼通過'isOn'到'callback.call(isOn)'到你的回調 –

回答

2

您無法call()添加說法從哪兒冒出來期望它的工作。 Callable的call()是沒有說服力的。然而,什麼可以做,是延長贖回,並通過任何你想要通過構造:

class MyCallable extends Callable { 

    boolean isOn; 

    public MyCallable(boolean isOn) { 
     mIsOn = isOn; 
    } 

    public Boolean call() throws Exception { 
     if (mIsOn) { 
      ... 
     } 
     ... 
    } 

} 

所以後來

Callable wifiStateCallback = new MyCallable(false); 
+0

我試圖在我的掃描條形碼活動類中添加該類,但它錯誤地出現了'Callable'它說這裏沒有預期的界面。 @Marcin Orlowski –

+0

你能告訴我如何在我自己的代碼中實現它嗎?我不明白如何使用它@Marcin Orlowski –

相關問題