簡體   English   中英

if-then語句中的Java變量初始化

[英]Java variable initialization in if-then statement

我有這段代碼想通過一個切換按鈕關閉Wifi。 我也想擁有它,以便如果用戶在按下按鈕之前已經打開Wifi,則在關閉切換按鈕后Wifi會重新打開。 這是通過wifiON boolean完成的。 但是,由於變量是在if語句的第一部分初始化的,因此else語句將不會使用它。 我如何設置它,以便else語句可以從if語句獲取布爾值。 下面是代碼。

    public void airplaneClicked (View view) {
    boolean on = ((ToggleButton) view).isChecked();
    WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    boolean wifiOn;

    if (on) {
        if (wifi.isWifiEnabled()) {
            wifiOn = true;
            Log.v("", "" + wifiOn);
            wifi.setWifiEnabled(false);
        } else {
            wifiOn = false;
            Log.v("", "" + wifiOn);
        }
    }
    else {
        if (wifiOn == true) {
            wifi.setWifiEnabled(true);
        }
    }
}
wifi.setWifiEnabled(!wifi.isWifiEnabled());

如果在if-else的兩個部分都需要wifiOn的值,請將其移到if-else之前。

if (wifi.isWifiEnabled()) {
    wifiOn = true;
} else {
    wifiOn = false;
}
if (on) {
    if (wifi.isWifiEnabled()) {
        Log.v("", "" + wifiOn);
        wifi.setWifiEnabled(false);
    } else {
        Log.v("", "" + wifiOn);
    }
}
else {
    if (wifiOn == true) {
        wifi.setWifiEnabled(true);
    }
}
 //Use additional boolean - wifiState

boolean wifiState = wifi.isWifiEnabled(); 
        if (on) {
                if (wifiState) {
                    wifiState = true;
                    Log.v("", "" + wifiOn);
                    wifi.setWifiEnabled(false);
                } else {
                    wifiState = false;
                    Log.v("", "" + wifiOn);
                }
            }
            else {
                if (wifiState) {
                    wifi.setWifiEnabled(true);
                }
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM