Kotlin에서 EditText 텍스트 설정 안 되는 이유 & 해결 방법

thsamajiki·2023년 8월 21일
0

트러블슈팅

목록 보기
5/25

문제상황

class SetTextActivity : AppCompatActivity() {
    lateinit var binding: ActivitySetTextBinding
    override fun onCreate(savedInstanceState: Bundle?) {
    	...

        /**
         * editTextOutput은 editText의 id이다.
         * input은 String이다.
         */
      	editTextOutput.text = input
    }
}

위의 방법으로 EditText의 text를 설정하려는 데 아래와 같이 에러가 발생했다.

Type mismatch.
Required: Editable!
Found: String



원인

Editable type이 들어가야 하는데, String을 넣어서 타입이 맞지 않았다.

Editable

This is the interface for text whose content and markup can be changed (as opposed to immutable text like Strings)

-> 내용이나 마크업이 변경될 수 있는 텍스트(String과 반대)를 위한 인터페이스

T!
T 또는 T?를 의미한다. 'null이 될 수도~ 안 될 수도~'
즉, T타입의 널 가능성에 대해 아무 정보도 없다는 뜻이다.



해결 방법

  1. setter를 사용한다.
editTextOutput.setText(input)
  1. Editable형태로 바꿔서 대입한다.
editTextOutput2.text = Editable.Factory.getInstance().newEditable(input)
profile
안드로이드 개발자

0개의 댓글