如果沒有Internet連接可用,我想禁用我的edittext字段。所以,爲此,我讓廣播接收者類來檢測網絡變化活動,並且當我收到沒有互聯網連接可用的廣播時,那時我想禁用我的編輯文本字段,並且因爲互聯網連接是由用戶進行的,所以字段應該是自動啓用。最重要的是,我正在使用kotlin做這件事,我發現了很多解決方案,但都是針對java的。 所以,請幫助我,我該怎麼做。我曾試圖讓類實例訪問的EditText像下面訪問edittext來自BroadcastReceiver的Activity使用kotlin的Android類
var activityInstance = SetProfileActivity::class.objectInstance
,並通過使用activityInstance對象我試圖訪問我的EditText像下面
activityInstance.myEtId.setEnabled(false)
,但我不能訪問它,它返回null 。 我該怎麼做?
做**不**創建一個活動的靜態引用。首先,你正在造成內存泄漏。其次,不存在活動存在的要求(例如,在過程終止後的某個時間接收的廣播)。而且,在Android 8.0+上,您無法通過清單註冊的接收器收聽此廣播。在活動內部使用'registerReceiver()'*而不是清單註冊的接收器,並且您將清除這些問題。 – CommonsWare
是的,我也試過這個,並在我的活動課上註冊了我的廣播接收器,但我直到無法訪問我的編輯文本....我試圖從最近2天,但我最近得到解決方案,我必須申報我的broadcastreceiver類作爲內部類.. 順便說一句......感謝您的支持! –
然後我建議您提供一個顯示此代碼的[mcve]。這將包括整個活動的源代碼,包括您通過registerReceiver()註冊的接收器。 – CommonsWare