티스토리 뷰

반응형

 

 

 

안녕하세요.
나는야 용테크 입니다.

 

 

자바나 C#만 공부하고 안드로이드는

이제 막 공부를 시작한 저에겐

 


R.어쩌구.저쩌구
이게 엄청 생소한 개념이였습니다.

 

 

R.java에 정의되어 있는

Class들의 네임을 통해

 

고유의 값를 불러와서

사용한다는 건 알겠는데..

 

 

경로를 통해 이미지를 불러와서

보여주는 방식이 익숙한 저에게

 

R.drawable.파일명 이라는건 멘붕이였습니다.

예를들면 이런거에요.

 

 


 
이런 아이가 있다라고 가정합니다.

 


이미지뷰 동적으로 만들고

거기의 저 아이를 입히고 싶습니다.

 

 


시도 1. 자바에서라면?

 


 
 

이렇게 하면 되겟지요.

 


뭐 동적으로 한다고 해도

"res/drawable/"+imgName 정도겠네요.

 

 

근데 안드로이드는 R.어쩌구.저쩌구 개념 때문에

이게 안되더라구요.

 


그래서 저는 시도해봤습니다.

 

 

 


시도 2. R.어쩌구. + 파일명?

 

 


 
 
아, 안되네요.

 


사실 안될거라는거

대충 느낌은 왔었습니다.

 


깊은 빡침이 느껴집니다.

대체 어쩌라는거니?


 

 

 

시도 3. R.drawable.getId()?

 


포기하지 않습니다.
기본적인 상식을 대입해봅니다.

 


ID값을 얻어오는 함수

있지 않을까?

 

 

 


있기는 ....
R.drawable.getId() 이런거는 존재하지도 않습니다.

 

 


시도 4. getResources ().getIdentifier()

 


친구에게 물어보고 찾아본 결과

방법을 찾았습니다!

 

바로 getResources().getIdentifier()

사용하는 것이였습니다.

 


단! Activity 클래스의 함수이므로

extends Activity를 한 클래스에서만 됩니다.

 

 



엄청 간단합니다.

 


  getResources().getIdentifier("패키지명 : R내부클래스명 / 네임", null, null);
또는
  getResources().getIdentifier("네임", "R내부클래스명", "패키지명");

 


이거였습니다.

 

 

결과는 R.java 내에 있는

각 고유값이 INT 값으로 리턴됩니다.

 

 

 

 

결론, 이렇게 사용합니다.

 


저는 간단하게 getId라는 함수를

만들어서 사용을 합니다.

 

 

 


이렇게 정의하면

 


getId("id", "tabView") 이런식으로 입력하면

tabView의 아이디 값이 나오게됩니다.

 


 

 

 


이런식으로 사용한 다음에


이렇게 사용한답니다.

 

 

어때요?

 


요 몇일 이거 때문에 코딩할맛도

안나고 침체기였는데

 


시원하게 해결했네요!

안드, 배워가는 맛이 있네요.

 

 

이만,
나는야 용테크 였습니다.

 

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday