2013-06-26 72 views
0

在我的應用程序中,我有一個切換按鈕,需要激活或禁用wifi。現在如何檢查wifi切換按鈕的狀態?

public void getRisparmio(View view) { 
    // is the toggle on? 
    boolean on = ((ToggleButton) view).isChecked(); 

    WifiManager wifiManager; 
    if (on) { 
     wifiManager(WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
     wifiManager.setWifiEnabled(true); 
    } else { 
     wifiManager(WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
     wifiManager.setWifiEnabled(false); 
    } 
    } 

的問題是:如果WiFi已經被激活,我啓動應用程序,切換按鈕應該按下/激活。實際上並沒有去,並且切換總是在關閉時恢復其狀態。我想我可以檢查狀態onResume()但我不知道如何,我不知道我是否還必須在onCreate()方法中添加一些東西。

我該如何檢查狀態?由於

+0

您是否正在監聽wifi狀態的變化並切換按鈕狀態的變化? – frogmanx

+0

該代碼是我發佈的。實際上,當我點擊開關進入狀態並且無線開啓時,再次點擊並且無線網關閉。該應用程序進展順利,但有我寫的問題。切換按鈕的狀態需要根據我打開應用程序時的WiFi狀態。 –

回答

0

你將不得不使用切換按鈕的方法,這樣的設置切換按鈕中的onCreate()和的onResume():

toggleButton.setChecked(wifiManager.isWifiEnabled()); 

例如

@Override 
protected void onResume() 
{ 
    super.onResume(); 
    WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
    ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggleButton1); 
    toggleButton.setChecked(wifiManager.isWifiEnabled()); 
} 
+0

類似:'@ Override' '保護無效的onResume(){'' super.onResume();'' toggleButton.setChecked(wifiManager.isWifiEnabled());'' }'? –

+0

您將不得不重新聲明變量,但實質上是。 – frogmanx

+0

mmh,「無法對類型爲WifiManager的非靜態方法isWifiEnabled()進行靜態引用。」但是從你拿的地方來看'isWifiEnabled()'? –