Tips2012. 1. 16. 15:49

이클립스에서 안드로이드 리소스를 정의할 때, 문자열을 하드코딩하면 아래와 같은 경고 메시지를 보게 된다.


 
얼마전까지만 해도 이런 메시지가 없었는데, 최근 업데이트한 이후에 지저분한(?) 메시지가 보이기 시작했다.
귀찮지만, 경각심을 일깨워주니 고맙기도 하다. (사실 고마워 해야한다. ^^)

또한, contentDescription 속성을 정의하지 않으면 "Missing contentDescription attribute" 경고도 보여주니 이래저래 string 리소스를 정의할 일도 많아졌다.

그런데, 코딩 중에 문자열을 string 리소스에 추가하고, 정의한 이름을 다시 Copy & Paste를 한 후에 android:text="@string/example"과 같이 적어주는 일은 최고로 귀찮은 일이다.

위와 같은 작업은 개발자 평균 30초에서 45초 걸리는 작업이라고 하니, 그냥 넘기기엔 결국 하드코딩된 문자열들이 우후죽순 발생하게 되고, 내내 찜찜한 상태로 커밋을 하게 된다.


[빠르게 문자열 리소스 추가하기]

android:text="Example" 에서 "Example"부분을 드래그한다.
"Alt + Shift + A, S"를 누르면 아래와 같은 팝업이 떠야한다. (이전 버전에서는 "Alt + Shift + A"만으로도 동작했었는데...)




그런데!!! 이런!! 오류가 발생한다. (예상치 못했음..)

"The attribute android:text does not accept a string reference"....



예전에는 잘 되었던 기능인데, 이런다.... TEXT속성에서는 불가능 하다는 건데...
(이유는 모르겠다. 일시적으로 이클립스 에디터의 버그인지.. 더 이상 지원안하기로 했는지. 버전 업을 기다려야 겠다.) 급한대로, "android:contentDescription="Example"에서 할 때는 잘 동작한다.

어쨌든, 팝업이 정상적으로 떴을 때, 리소스 명칭을 적절하게 넣은 후, [확인]을 누른다.
"Example"이 "@string/str_example"로 변경된 것을 확인할 수 있다.

실제로, res/values/strings.xml에는 str_example 이라는 문자열 리소스가 추가된 것을 확인할 수 있다.

<resources>

    <string name="hello">Hello World, TestAppActivity!</string>
    <string name="app_name">TransparentActivityDemo</string>
    <string name="str_example">Example</string>

</resources>

이 방법으로는 30초 넘게 걸리던 작업을 평균 15초로 단축시킨다고 하니, 꽤 쓸만한 단축키다. 

text 속성에서도 잘 동작하면 좋았을 껄, 글을 쓰다보니 문제가 발생해서, 별것도 아닌 글이 지저분 해졌다.
다음 버전 업데이트에서는 text 속성에서도 잘 동작하길 바라며...^^;;;;

 
Posted by 데브로망스