2016-04-26 47 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 –

相关问题