본문 바로가기

안드로이드앱 코딩_AndroidApp/안드로이드 스튜디오

첫 프로젝트 만들기_08_String 문자열

문자열(String) 다루기

 

이번에는 지금까지 만든 내용에서 에러난 부분을 살펴본다.

button 뷰 오른쪽에 경고 표시에 마우스를 대면 설명이 나타난다.

'코드에 적은 문자열 "버튼"을 '@string' 리소스를 사용하는 것이 좋다'라는 뜻이다.

안드로이드 스튜디오에서는 문자열을 strings.xml 파일에서 관리한다.

 

문자열을 strings.xml로 관리하면 좋은 점이 있다.

첫째. 어떤 문자열을 앱의 여러곳에서 사용한 경우 한번 수정으로 모두 바꿀 수 있다.

둘째. 다른 국가 언어로 번역하는데 사용 한다.

예를 들면 strings.xml파일을 한글판, 영어판으로 만들어 놓으면 영어로 설정된 휴대폰 사용자는 영어로 나오고 한글폰이면 한글이 자동으로 나온다. 이 방법은 다음에 배우기로 한다.

 

strings.xml파일을 열어보자.

왼쪽 파일창에서 res > values > strings.xml파일을 더블클릭하여 파일을 연다.

제일 위쪽에 <resources>시작 태그와

제일 아래쪽에 </resources>종료 태그가 있다.

 

이 resources(리소스) 태그 안에 현재 적혀있는 코드는

문자열 리소스 이름이 app_name(앱 이름)과 hello_text인 두 속성에

각각 MyExercise와 Hello Kotlin!이라는 두 문자열 값이 적혀있다.

조금전 경고 내용을 이 파일에서 직접 입력해도 되지만

여기서는 다른 방법을 사용해 본다.

 

activity_main.xml 탭을 다시 눌러보자.

화면 편집화면에서 strings.xml파일에 리소스를 추가하려면 해당 속성(Attribute) 옆의 사각형을 클릭한다.

리소스 선택창이 나타나면 새 리소스를 만들기 위해 오른쪽 위의 삼각형을 클릭한 후

New string Value(새 문자열 값)을 누른다.

Resource name(리소스 이름)에는 count_button을 입력한다.

리소스 이름은 어떤 리소스로 사용했는지 쉽게 알아볼 수 있도록 이름 지으면 된다.

여기서는 이 버튼을 클릭하면 숫자를 세는 프로젝트를 만들것이기 때문에 count(세다)를 사용했다.

이름 지을때는 소문자, 언더바(_), 숫자를 사용해서 만들면 된다.

그래서 button_count라고 해도 되고 button_text_count라고 해도 좋다.

 

Resource value(리소스 값)에는 대문자로 COUNT를 입력한다.

이 글자는 버튼에 표시될 문자이므로 대문자를 사용했다.

한글로 해도 좋다.

이 경우에는 strings.xml 의 값들을 모두 한글로 적어야 한다.

그리고 영어로 번역할 때는 영어용 strings.xml을 따로 만들어서 영어로 바꾸면 된다.

물론 영어용 앱이 필요없다면 한글, 영어 섞어도 상관없다. 

 

다 됐으면 OK단추를 눌러서 리소스를 등록하자.

다시 strings.xml로 가보면 등록된 것을 알 수 있다.

activity_main.xml로 가서 에러가 어떻게 바뀌었는지 확인하자.

경고 메시지가 사라진것을 확인할 수 있다.

아래 Text탭 (을 눌러서 코드가 어떻게 바뀌었는지 살펴보자.

참고: Text탭과 Design탭은 안드로이드 스튜디오3.6 이상에서는 오른쪽 속성창 위로 자리를 옮겼다.) 

 

리소스를 추가하기 전에는 버튼에 적혀있던 글자 "Button"이 그대로 표시되어 있었는데

string resource(스트링 리소스)로 등록한 후에는 @string/count_button으로 바뀌었다.

이것은 'string 리소스에 있는 이름이 count_button인 문자열을 참고한다'라는 뜻입니다.

마우스로 클릭해 보면 'COUNT'가 나타납니다.

 

이번에는 strings.xml 파일에서 리소스 이름을 바꾸면 어떻게 되는지 알아보자.

위 그림에서 흰색은 리소스의 값(value)이다.

이것은 이 코드내에서 쉽게 수정할 수 있지만

녹색인 리소스 이름(name)은 수정할 경우 추가로 수정해야 하는 작업이 생긴다.

리소스 이름을 count_button에서 count_button_text로 바꿔보자.

activity_main.xml파일로 가보면 버튼 글자도 바뀌어 있다.

Text탭을 눌러 코드로 가보면 위 그림처럼 빨간색으로 경고 표시가 나타난다.

이것은 참조하고 있던 이름이 바뀌었기 때문에 표시할 내용을 찾지 못하는 것이다.

에러를 고쳐보자.

마우스 커서를 n다음에 두고 언더바( _ )를 입력하면 자동으로 등록되어 있는 소스가 나타난다.

조금전 수정한 리소스를 확인하고 엔터키를 치면 자동으로 수정된다.

 

여기까지 다 되었으면 레이아웃을 확인하고 가상기기 또는 실제폰으로 실행해 보자.

잘 되었다면 아래 화면처럼 나타난다.

이제 첫번째 프로젝트의 레이아웃이 완성되었다.

이제 레이아웃에 추가한 뷰(View)들이 어떻게 작동할 지를 정하는 코드를 만들어야 한다.

이 프로젝트의 목표는 count버튼을 클릭할 때마다 숫자가 1씩 증가하고 그 숫자를 textView(텍스트뷰)에 나타내는 것이다.

다음 글에서는 텍스트뷰를 숫자로 바꾸고 코드를 작성해 본다.

끝.