2013-03-12 4 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 Code] (http://www.oracle. com/technetwork/java/javase/documentation/codeconventions-135099.html # 367) для именования переменных. Это также стандарты Android, и они диктуют, что переменные (такие как WiFiMan и ваш Wi-Fi ToggleButton) являются lowerCamelCase. UpperCamelCase обычно зарезервирован для имен классов. –

ответ

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

2

Если это все вашего кода (я сомневаюсь, что это такое), то проблема заключается в том, что вы только проверяете статус WiFi (и ваш статус переключения), когда переключатель нажата.

Если вы добавили чек на WiFiMan.isWifiEnabled() в onCreate() вашей деятельности, вы можете легко установить статус переключателя при создании Activity.

+1

Перспектива от меня, так как мы отправили один и тот же совет одновременно, дважды. Один раз для кода, второй раз для соглашения об именах. – Sam

Смежные вопросы