인터넷 연결을 사용할 수없는 경우 편집 텍스트 필드를 비활성화하고 싶습니다. 그래서, 나는 네트워크 변경 활동을 감지하는 broadcastreceiver 클래스를 만들었고, 인터넷 연결을 사용할 수 없다는 브로드 캐스트를 받으면 그 시간에 편집 텍스트 필드를 비활성화하고 인터넷 연결이 사용자에 의해 이루어 지도록 필드가 있어야합니다. 자동으로 활성화됩니다. 가장 중요한 것은 kotlin을 사용하여이 작업을 수행하고 있으며 많은 솔루션을 찾았지만 모두 java에 대한 것입니다. 그래서, 어떻게 도와 드릴까요? 난 내가 아래kotlin을 사용하여 android의 BroadcastReceiver 클래스에서 edittext 활동에 액세스하십시오.
activityInstance.myEtId.setEnabled(false)
처럼 내 글고 치기에 액세스하려고 아래
var activityInstance = SetProfileActivity::class.objectInstance
처럼 글고 치기에 액세스하고 activityInstance 개체를 사용하여 클래스 인스턴스를 얻기 위해 노력했다하지만 난 그것을 액세스 할 수 있으며 null을 반환 . 어떻게해야합니까?
** 활동에 대한 '정적'참조를 만들지 마세요. 첫째, 메모리 누수가 발생하고 있습니다. 둘째로, 활동이 존재할 필요는 없다 (예를 들어, 프로세스가 종료 된 후 언젠가 방송이 수신 됨). Android 8.0 이상에서는 매니페스트 등록 리시버를 통해이 브로드 캐스트를 청취 할 수 없습니다. 매니페스트에 등록 된 리시버가 아닌 액티비티 내부에서'registerReceiver()'*를 사용하면 이러한 문제를 해결할 수 있습니다. – CommonsWare
그래, 나 또한 이것을 시도하고 내 활동 수업에 내 방송 수신기를 등록했지만 내 edittext에 액세스 할 수 없을 때까지 .... 나는 지난 2 일에서 그것을 시도하고 있지만 솔루션을 가지고있어 최근에 내 선언해야 해. 그건 그렇고 ... 지원 주셔서 감사합니다 !!! –
그러면이 코드를 보여주는 [mcve]를 제공하는 것이 좋습니다. 이것은 registerReceiver()를 통해 등록하는 수신기를 포함하여 활동의 전체 소스 코드를 포함합니다. – CommonsWare