2017-01-06 128 views
0

我实现了检查wifi状态连接与否的代码。我做了一个文本视图动态更新textview数据Android Java

TextView WifiTv = (TextView) findViewById(R.id.wifistate); 

    ConnectivityManager connectionManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo wifiCheck = connectionManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 


    if (wifiCheck.isConnected()) { 
     // Do whatever here 
     WifiTv.setText("WiFi is Connected"); 
     WifiTv.notify(); 
    } else { 
     WifiTv.setText("WiFi is not Connected"); 
    } 

它的工作原理,但它不会动态更新,因此,如果我关闭wifi我必须刷新活动TextView的改变(不绑定数据)。如何让textview更新不刷新? Thx

编辑:我有这个代码在一个单独的类与吐司很好地工作。我想要做的只是在textview中显示。如何将textview变量连接到这个没有xml的类?

public void onReceive(Context context, Intent intent) { 

    NetworkInfo info = 
      intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); 
    if (info != null && info.isConnected()) { 
     // Do your work. 
     // e.g. To check the Network Name or other info: 
     WifiManager wifiManager = (WifiManager) 
       context.getSystemService(Context.WIFI_SERVICE); 
     WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 
     String ssid = wifiInfo.getSSID(); 

     Toast.makeText(context, "Connected to: " + ssid, 
       Toast.LENGTH_SHORT).show(); 


    } 
+0

创建这些当你调用这个代码片断? – Ahmar

回答

0

您需要BroadcastReceiver和wifimanager。 BroadcastReceiver每次启动时都会启动接收隐式意图。 wifimanager来检查状态。

0

您是否尝试添加onResume函数以在每次恢复活动时再次检查?

不知道你的应用程序,但也许这一点,

@Override 
    protected void onResume() { 
     super.onResume(); 

     if (wifiCheck.isConnected()) { 
     // Do whatever here 
      WifiTv.setText("WiFi is Connected"); 
      WifiTv.notify(); 
     } else { 
      WifiTv.setText("WiFi is not Connected"); 
     } 
    } 

如果你对他人的变量不是全局到活动,再内的onResume