Как передать значение для функции Callable в Android-студии?
Я пытаюсь передать значение функции обратного вызова в моем коде, я передаю мой callback
в другую функцию, и я хочу вернуть callback
Штат,
вот моя функция, которую я отправляю>
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();
}
}
и вот мой Callable, что я прохожу>
//callback for the ifiState
Callable wifiStateCallback = new Callable() {
@Override
public Boolean call() throws Exception {
return null;
}
};
ПРОБЛЕМА Я хочу передать isOnState
к callable
и не могу заставить его работать. я добавляю
callback.call(isOn);
но это не работает, говорит, что не может быть применено
1 ответ
Решение
Вы не можете добавить аргумент 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);