인터넷 웹페이지를 인텐트로 띄우는 과제를 하던중 문제가 생겼다. edittext의 내용을 가져와서 그걸 parse시켜야하는데 구글링하기 전에 IDE내부와 공식문서를 찾아봤다. edittext의 내용을 가져오는 부분에서 막혔다.
setOnEditorActionListener가 유력해보였다. 그래서 안드로이드 공식문서에 검색을 해보니 그다지 도움이 되는 내용이 없었다.
https://developer.android.com/reference/kotlin/android/widget/TextView.OnEditorActionListener
좀 찾아보니까 이런게 나왔다. setOnEditorActionListener와 아예 관련이 없었다.
addTextChangedListener를 사용해서 익명함수로 버퍼를 받는것 같더라. 안에 생성된 override 함수들은 generator를 이용해 자동으로 만들어줬다.
로그를 찍어보면 before는 입력 전 상태, after는 입력 후 상태, on은 입력중인 상태이다. 이때 s가 내용물에 해당한다.
실사용할때는 watcher:TextWatcher를 object:TextWatcher{ }로 바로 익명함수로 사용하는 것 같다.
이렇게 세 개가 있는데 가운데것도 알아봐야한다. 기본적으로 addTextChangedListener는 세 개의 함수를 같이 써야한다는 것 같은데 코틀린에 한해서 따로 쓰는 게 가능한 것 처럼 보인다.
https://stackoverflow.com/questions/40569436/kotlin-addtextchangelistener-lambda
그래서 따로 사용도 해봤다.
잘 작동했다.
아직 잘 알지못하는 부분인데 주소를 https://(http://) 로 시작하지않으면 프로그램이 죽어버리더라.
추후에 알게되면 기록하겠다.
"댓글, 공감 버튼 한 번씩 누르고 가주시면 큰 힘이 됩니다"