2013-06-26 3 views
0

В моем приложении у меня есть кнопка переключения, которая должна активировать или отключать Wi-Fi.Как я могу проверить состояние кнопки переключения для Wi-Fi?

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

Код, который я разместил. Фактически, когда я нажимаю переключатель, вы включаете состояние и включаете Wi-Fi, нажмите снова, и Wi-Fi отключится. Приложение идет хорошо, но есть проблема, которую я написал. Состояние кнопки переключения должно соответствовать состоянию, в котором находится Wi-Fi, когда я открываю приложение. –

ответ

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: «Невозможно сделать статическую ссылку на нестатический метод isWifiEnabled() из типа WifiManager». Но 'isWifiEnabled()' откуда вы его берете? –