wafflestudio / seminar-2021

2021 Rookies 세미나
47 stars 110 forks source link

Android assignment0에서 EditText사용에 대해 질문드립니다. #289

Closed Whiteppanda closed 3 years ago

Whiteppanda commented 3 years ago

'''kotiln

    numberInput.addTextChangedListener(object : TextWatcher{
        override fun afterTextChanged(p0: Editable?) {

        }
        override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {

        }
        override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
            val number = numberInput.getText().toString() + " "
            numberInput.setText(number)
        }
    })

'''

EditText에 1234를 입력할 때 1 2 3 4 이런식으로 보여지게 하고 싶어서 TextWatcher로 시도해보았는데 에뮬레이터가 멈춥니다... 왜 그런지 알고 싶습니다..(제가 공부가 너무 오랜만이라 너무 기초적인것도 모르겠네요 ㅠㅠ)

VioletXF commented 3 years ago

onTextChanged에서 setText를 하시면 다시 onTextChanged가 호출되게 됩니다. 즉, 무한 반복에 빠지게 됩니다.

Whiteppanda commented 3 years ago

감사합니다 덕분에 잘 찾아서 해결했어요!

sanggggg commented 3 years ago

@Whiteppanda

Screen Shot 2021-09-04 at 7 46 24 PM

e.g.


        numberInput.addTextChangedListener(object : TextWatcher{
            override fun afterTextChanged(p0: Editable?) {

            }
            override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {

            }
            override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
                val number = numberInput.getText().toString() + " "
                numberInput.setText(number)
            }
        })
sanggggg commented 3 years ago

참고 - #204