본문 바로가기
5번 프로그래밍/Kotlin, 안드로이드 스튜디오

안드로이드 스튜디오 - Udacity 챕터2, 2장 30절 Exercise: Add Baseline Constraint and Button Chain

by 하늘나는 곰 2021. 6. 21.

동영상 강의 의 맨 마지막 부분 버튼을 눌러서 색깔 변경을 하는 것이다.

 

//Boxes using custom colors for background

R.id.red_button -> box_three_text.setBackgroundResource(R.color.my_red)
R.id.yellow_button -> box_four_text.setBackgroundResource(R.color.my_yellow)
R.id.green_button -> box_five_text.setBackgroundResource(R.color.my_green)

 

물론 똑같이 코드를 작성을 해보았더니 에러가 뜬다.

 

참조 id를 받아오는 것이 안드로이드 스튜비오 3. 어쩌고 버전과

 

현재 최신 버전인 4. 어쩌고 버전은 많이 다른가 보다.

 

당연히 또 참조 할 수 없음이라고 뜨면서 에러가 발생한다.

 

 

R.id.red_button -> view.setBackgroundResource(R.color.my_red)
R.id.yellow_button -> view.setBackgroundResource(R.color.my_yellow)
R.id.green_button -> view.setBackgroundResource(R.color.my_green)

 

이런식으로 위쪽과 같은 방법으로 바꿀수없을까 해서 살짝 바꾸어 보면 에러는

발생하지 않는다.

 

그럼 된 것일까?

실행을 해보자

 

 

생각보다 좋은 느낌으로 될 줄 알았는데

색깔이 변하지 않는다 방법을 알 수가 없다.

 

우리만 안되는 것이 아니라 적어도 다른 사람들도

안되고 있는 것이 보이고 있다.

 

완전 똑같은 질문을 올려 놓은 것이 구글링에 나온다.

 

답변은 친절하게 달아 놓아 주었지만

 

이것을 그대로 따라 하기에는 전부 다 수정을 해야할 것 같은

 

'기분'이 든다.

 

그렇다 적어도 나는 지금 저걸로 수정을 할 엄두조차 나지 않는다.

 

알아들을 수 있는 분은 수정을 해보는 것이 좋을 것 같다.

 

R.id.red_button -> box_three_text.setBackgroundResource(R.color.my_red)

 

결국은 다시 원점으로 돌아와서 이부분에 발생하는 에러를 어떻게든 지워야 한다.

 

열심히 구글링을 했더니 이번에는 다른 것이 보인다.

 

 

비교적 가까운 시기인 21년 5월 10일에 어떤 사람이 똑같이 질문을 하였다.

이곳에 달린 답변이 다행히도 있었다!

 

할렐루야!!

 

여기서는 코드를 수정하기 보다는 플러그인 추가와 import 추가를 해보라고 하고 있다.

 

왠지 좀 더 믿음이 가기 시작했다.

 

첫번째

 

apply plugin: 'kotlin-android-extensions' 를 추가해 보자.

 

저렇게 추가한 다음에

 

오른쪽 상단에 적용하기를 누른다는 것 잊으면 안된다.

 

두번째

 

import kotlinx.android.synthetic.main.activity_main.* 를 적용해 보자.

 

 

자 제발 제발!!!

 

제발 되어라!

 

 

 

성공 했다. 됀다!!!

 

이번에는 뭔가가 완벽하게 된 것 같다!

 

왠지 지금 플러그인 추가로 기존에 안되어서

findViewById 를 이용하여 했던

 

 

val view1 : View = findViewById(R.id.box_one_text) 이것도

 

원래 수업에 했던 코딩으로 하면 될 것 같은 용기가 생겼다.

 

테스트를 하는 김에 한번 해보도록하자.

 

 

내가 썼던 코드는 전부 주석처리를 해주고

 

강의 시간에 했던 내용으로 전부다 수정을 해주었다.

 

기존에는

 

R.id.box_one_text -> view.setBackgroundColor(Color.DKGRAY)
R.id.box_two_text -> view.setBackgroundColor(Color.GRAY)

// Boxes using Android color resources for background
R.id.box_three_text -> view.setBackgroundResource(android.R.color.holo_green_light)
R.id.box_four_text -> view.setBackgroundResource(android.R.color.holo_green_dark)
R.id.box_five_text -> view.setBackgroundResource(android.R.color.holo_green_light)

이 세 부분이 붉은색 에러를 표시하면서 실행되지 않았는데

 

수업에서 진행되던 문장으로 수정을 해도 에러가 뜨는 것이 없다.

하는 김에 실행도 한번 해보자.

 

사기다.

씨발이다... 지금 기뻐서 눈물이 앞을 가린다!!!!

 

책상에 기쁨의 샷건을 치고 있다.

 

여기서 해결이 되었다는 이야기는 앞으로의 오류도

발생할 하지 않을 가능성이 생겼다는 것이다.

 

이걸로 전부 다 앞으로 해결 되어야한다!

 

챕터 2, 2장을 하면서 생겼던 오류가 전부다 해결 된 듯한다!

 

apply plugin: 'kotlin-android-extensions'

import kotlinx.android.synthetic.main.activity_main.*

 

안드로이드 스튜디오에서 문제가 발생하고 있을 때

 

이 두가지를 해야 진행이 되는 것이었다.

 

멍청한 짓을 하느라 시간을 일주일을 날려먹고 있었다.

 

지금이라도 찾아서 정말 다행이다.

 

감사합니다.

 

구글 신님

 

댓글