[kotlin][오류해결] setText시 액티비티(화면)이 튕겨버릴 때

Boknami·2023년 9월 6일
0

오류해결

목록 보기
3/4

API를 이용해서 값을 가지고 오고 그 가져온 값을 이용해서 사용자에게 보여주는 상황이 분명있다.

🙄 상황

override fun onResponse(call: Call, response: Response) {
                    val responseBody = response.body?.string()

                    if (response.isSuccessful && responseBody != null) {
                        val json = JSONObject(responseBody)
                        val title = json.getString("title")
                        val content = json.getString("content")

                        Log.d("가이드라인", "커스텀 가이드 : 성공 응답이 존재합니다.\n응답 : ${response}")
                        Log.d("가이드라인", "$title | $content")
                        binding.textGuildLine.setText(content)

나 같은 경우 서버와 통신하여 성공한 응답 & 응답이 null이 아닌 경우에 가이드라인에 대한 값을 가져오고 text형태로 사용자에게 보여줘야 하는 상황이었다.

그런데 build에서 에러가 안 났고, Log에도 딱히 찍힌 게 없었다. 에러 코드가 나고 어떤 이유 때문에 에러가 난다 하는 에러가 발견되지도 않아 내가 지금 뭘 잘못하는거지 라는 생각만 들었다.

💡 해결

정~말 간단하다..이 내용은 분명했었는데 내 뇌리에 확실히 박아야겠다.

setText는 UI에 텍스트에 값을 조정하는 부분이고 이런 UI와 담당된 부분은 runOnUiThread에서 해야한다.

Log.d("가이드라인", "커스텀 가이드 : 성공 응답이 존재합니다.\n응답 : ${response}")
Log.d("가이드라인", "$title | $content")
//.textGuildLine.setText(content)
runOnUiThread{
    binding.textGuildLine.setText(content)
}

0개의 댓글