2013-03-12 86 views
0

我有一個開關按鈕來打開和關閉無線。它工作正常。但是,我想要當我進入我的應用程序,如果無線已經打開,我的切換按鈕也將打開。現在不是。有些事情是不對的。這是我的代碼。如何更改切換按鈕的狀態?

WifiManager WifiMan; 
ToggleButton WiFi, GPRS; 

    WiFi.setOnClickListener(new OnClickListener() { //Ukljucuje WiFi 

       @Override 
       public void onClick(View v) { 

        if(WifiMan.isWifiEnabled()) 
        { 
         WiFi.setEnabled(true); 
        } 
        else{ 
         WiFi.setEnabled(false); 
        } 

        try 
         { 
         if (((ToggleButton)v).isChecked()) 
         SwarmPopup.this.WifiMan.setWifiEnabled(true); 
         else 
          SwarmPopup.this.WifiMan.setWifiEnabled(false); 
         } 
        catch (Exception localException) 
         { 
         Log.e("SwarmPopup", "error on WiFi listerner: " + localException.getMessage(), localException); 
         } 
       } 
      }); 
     } 
+0

你應該考慮以下的[Java代碼的慣例(http://www.oracle。 com/technetwork/java/javase/documentation/codeconventions-135099.html#367)來命名變量。這些也是Android標準,並且它們規定變量(例如WiFiMan和你的WiFi ToggleButton)應該是lowerCamelCase。 UpperCamelCase通常是爲類名保留的。 – 2013-03-12 19:04:59

回答

2

假設WifiMan是WifiManager,然後使用:

WiFi.setChecked(WifiMan.isWifiEnabled()); 

也請閱讀Java naming convention其中規定,變量名應該以小寫字母開頭。


最後,這樣的代碼:

if(WifiMan.isWifiEnabled()) 
{ 
    WiFi.setEnabled(true); 
} 
else{ 
    WiFi.setEnabled(false); 
} 

可以簡化爲:

WiFi.setEnabled(WifiMan.isWifiEnabled()); 
+0

就是這樣,謝謝。 – user2083882 2013-03-12 22:37:03

2

如果是你的代碼(我懷疑它是)的所有,那麼問題是,你點擊切換時只檢查無線網絡連接狀態(和你的切換狀態)。

如果您在活動的onCreate()中爲WiFiMan.isWifiEnabled()添加支票,則可以在創建活動時輕鬆設置切換的狀態。

+1

從我這裏得到了讚賞,因爲我們同時發佈了兩次相同的建議。一次用於代碼,第二次命名約定。 – Sam 2013-03-12 19:10:37