Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android studio中为可调用函数传递值?_Android_Android Studio_Callable Statement - Fatal编程技术网

如何在android studio中为可调用函数传递值?

如何在android studio中为可调用函数传递值?,android,android-studio,callable-statement,Android,Android Studio,Callable Statement,我试图在代码中向回调函数传递一个值, 我正在将我的回调传递给另一个函数,我希望它返回回调状态 这是我要发送的函数> wifiWrapper myWifiWrapper = new wifiWrapper(); //- INIZILIZING WIFI myWifiWrapper.checkWifiState(this, wifiStateCallback); 这是wifiWrapper类中的最终函数> //checks if the wifi is On

我试图在代码中向回调函数传递一个值, 我正在将我的
回调
传递给另一个函数,我希望它返回
回调
状态

这是我要发送的函数>

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
传递给
可调用的
,但似乎无法使其工作。
我在补充

callback.call(isOn);

但是它不起作用,它说它不能被应用

你不能无缘无故地给
call()
添加参数并期望它能起作用。Callable的
call()
是无参数的。然而,您可以做的是扩展Callable并通过构造函数传递您想要的任何内容:

class MyCallable extends Callable {

    boolean isOn;

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

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

}
那么

Callable wifiStateCallback = new MyCallable(false);

您不能凭空将参数添加到
call()
,并期望它工作。Callable的
call()
是无参数的。然而,您可以做的是扩展Callable并通过构造函数传递您想要的任何内容:

class MyCallable extends Callable {

    boolean isOn;

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

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

}
那么

Callable wifiStateCallback = new MyCallable(false);

你从来没有解释过你在这段代码中遇到的问题。你能解释一下你真正的问题是什么吗?如果你说你的callable不包含布尔值,那么把
isOn
传给
callback。call(isOn)
传给你的callback嘿,伙计们,对不起,当我添加,“我想将isOn状态传递给可调用函数,但似乎无法使其工作。”这就是我想做的。我想将isOn传递给可调用函数,如下所示>callback.call(isOn);但这不起作用,它说callable不能被应用,@vijay_ti编辑了我的第一个初始问题你从未解释过你在这段代码中面临的问题。你能解释一下你的实际问题是什么吗?如果你说callable不包含布尔值,那么把
isOn
传递到
callback.call(isOn)
给你的callback嘿,伙计们,很抱歉,当我添加“我想将isOn状态传递给可调用函数,但似乎无法使其工作”时,我想这样做。我想将isOn传递给可调用函数,如下所示>callback.call(isOn);但这不起作用,它说调用callble无法应用,@vijay_ti编辑了我的第一个初始问题我试图在扫描条形码活动类中添加该类,但它错误地将“Callable”一词改为“Callable”,它说这里不需要接口。@Marcin Orlowski你能告诉我如何在我自己的代码中实现它吗?我不明白关于如何使用它@Marcin Orlowski我试图在我的扫描条形码活动类中添加该类,但它错误地使用了“可调用”一词,它说这里不需要接口。@Marcin Orlowski你能告诉我如何在我自己的代码中实现它吗?我不明白如何使用@Marcin Orlowski