Study

[안드로이드 스튜디오] activity_main.xml에서 Hardcoded string "~~' 경고

Devailean 2021. 2. 24. 17:20

안드로이드 스튜디오에서 activity_main.xml 파일에서 액티비티 레이아웃을 설정할 때

버튼이나 텍스트 추가 시 다음과 같은 경고가 나온다.

 

Hardcoded string "Button", should use '@string' resource.

 

해석하자면 '버튼에 들어갈 텍스트가 hardcoded 됐으니 @string 리소스를 사용해라' 라는 뜻이다. 

 

이 말이 뭐냐면 

 

위와 같이 텍스트에 "Button"으로 텍스트를 할당하지 말고

res/values/strings.xml 파일에 문자열로 지정해줘서 그 문자열을 가져오라는 말이다.

 

사실 그렇게 안해도 앱 실행은 잘 되지만, 추천하지 않는다.

 

strings.xml 파일에 들어가면

위와 같이 앱 이름이 app_name 문자열 변수에 할당되어 있다.

 

직접 코드를 작성하여 원하는 텍스트를 문자열 변수에 지정하여도 되고,

상단 오른쪽의 open editor버튼을 눌러 +를 누른 뒤 키와 기본 값을 지정해줘도 된다.

상단 왼쪽의 + 버튼 누르기
키와 값 입력

 

그렇게 하면 아래와 같이 키와 값이 나열된다.

 

xml파일을 다시 확인해보면

 

입력한 키와 값이 코드로 작성되어져 있다.

 

이제 이 문자열을 버튼에 할당해보자.

 

방법1

android:text="@string/지정한 문자열 키"

위의 코드를 입력하거나,

 

방법2

 

디자인 모드에서 텍스트 옆의 길쭉한 버튼을 눌러 문자열을 클릭하고 OK를 클릭.

 

 

 

이렇게 하면 자주 쓰이는 문자에 대해 하나하나 버튼을 찾아가며 바꾸지 않아도 된다.