2013-03-12 232 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