안드로이드 애플리케이션 개발을 계속해서 하다보니, 항상 신규 버전을 설치해 놓고 쓰곤 합니다.
그런데 이런 이슈가 있더라구요.
| As of ADT 14, resource fields cannot be used as switch cases. Invoke this fix to get more information. |
ADT 14부터 리소스 필드는 switch-case로 사용할 수 없다고 합니다. 두두둥ㅠ
정확히 말하자면
ADT 14에서의 library project는 리소스 필드를 switch-case로 사용할 수 없는 것입니다.
ADT 14이후의 Library project에서의 R.java 파일을 보면 이렇게 바뀌었습니다.
예전의 R.java
현재의 R.java
예전에는 public static final int 변수명; 으로 되어있던 녀석들이 final이 빠져버렸습니다.
(위의 [더보기]를 참고하세요~)
아무튼, 이제 라이브러리 프로젝트에서 예전처럼 switch-case에 리소스 필드를 사용할 수 없는건 알겠습니다.
그럼 어떻게 해야 될까요?
if-else로 쓰는게 일단은 정답이라고 생각되네요.
switch()... 가 있는 곳에서 Ctrl + 1(Command + 1)을 누르면 바로 위의 스크린샷과 같은 화면을 보실 수 있습니다.
처음에는 값을 찾아올때만 사용하라는 것인가.. 라는 생각도 했지만(비교할때는 쓰지 말라는 것인가.. 라는 생각),
switch-case에서만 사용하지 않으면 되는것 같습니다.(실제로 final이 빠져서 사용할수도 없구요. ㅎ)
결과적으로는 switch-case문을 요렇게 변경해서 사용하면 된다는 얘기입니다.
뭐... 조금 귀찮지만... ADT 형이 시키는데로 해야겠죠... ㅋ
(v.getId()같은 경우는 int id = v.getId(); 와 같이 쓰셔도 되구요.)
'Android > Samples & Tips' 카테고리의 다른 글
| [Android-Tip] Reference(레퍼런스)란? (0) | 2011.12.22 |
|---|---|
| [Android tip] XML parser 성능비교 (0) | 2011.11.23 |
| [Android] 버튼클릭을 통한 색 변경 예제 (1) | 2011.11.01 |
| [Android] <include layout /> 인클루드 레이아웃 (7) | 2011.06.13 |
| [Android Tip] 마켓설치, PC설치, T-store설치, APK설치, 이클립스설치 어플들의 호환관계 (1) | 2011.05.20 |