我有一個類WifiManager
,它擁有一個布爾值,代表wifi連接或wifi斷開連接。android-數據綁定到字段,顯示匹配圖標
布爾字段得到更新,我在該類中有一個broadcastReceiver
。
private BroadcastReceiver wifiScanReceiver;
private boolean isWifiConnected = false;
wifiScanReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent intent) {
// Wifi connected/disconnected
NetworkInfo nwInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
if (nwInfo.getState().equals(NetworkInfo.State.CONNECTED)) {
// wifi connect
isWifiConnected = true;
} else {
// wifi disconnected
isWifiConnected = false;
}
}
};
context.registerReceiver(wifiScanReceiver, wifiIntentFilter);
在我MainActivity
我有一個WifiManager
領域,我要的是做數據綁定即會變化基於布爾值菜單項中的一個 - >如果isWifiConnected=false
集圖標@drawalbe/xxx
,如果isWifiConnected=true
將圖標設置爲@drawalbe/yyy
。
意義 - 具有排序一個「收聽」到isWifiConnected
值的變化,並基於該 - 設置MenuItem
的圖標中的一個來要麼@drawalbe/xxx
或@drawalbe/yyy
。
我知道有噸的方式做到這一點,從BroadcastReceiver
廣播的Intent
並抓住它在MainActivity
只是有一個Handler
運行和檢查isWifiConnected
每3秒..
我是什麼真的尋找是數據綁定與轉換器,就像你會在做一個MVVM項目。
在android中有這樣的事情嗎?