1. 이클립스를 실행하여 안드로이드 프로젝트를 선택한후 아래를 참조하여 프로젝트를 생성한다.
- 프로젝트명 : Exam_ResourcesId
- 빌드타겟 : Android 4.0.3(API Leve : 15)
- 패키지이름 : com.exam_resourcesid
2. main.xml에서 버튼을 하나 삽입한다.
B저장을 하여야 한다.
3. gen > com.exam_resources안에 있는 "R.java"화일을 열어본다. Integer형으로 선언된 button1의 값이 "0x7f050000"이라는 것을 확인합니다.
4. 아래와 같이 코드를 기입합니다.
[코드]
int getId = getResources().getIdentifier("button1", "id", "com.exam_resourcesid");
String idValue = Integer.toString(getId, 16);
Toast.makeText(Exam_ResourcesIdActivity.this, idValue, Toast.LENGTH_SHORT).show();
토스트 노티피케이터를 이용하여 값을 출력하는 것이라 역시 android.widget.Toast를 임포트 한다. 코드를 그냥 입력하는 방법도 있으나, 전시간 안내해드린 것처럼 Toast문자열 위에서 Ctrl+Shift+O 단축키를 이용하는 방법을 이용하시면 쉽게 추가 가능합니다.
[코드설명]
14번 라인 - getResources().getIndentifier메소드를 이용하여 com.exam_resourcesid의 패키지안에
button1의 id값을 Integer형 getId변수에 저장한다.
15번 라인 - Integer형으로 받은 값이므로 문자형으로 사용하기 위해서 데이터의 형식변환인 형변형을 한다.
이때 R.java에서 확인했던 값이 Hex(16진수)이므로 16진수로 변환하여 문자형 idValue변수에
담는다.
16번 라인 - 토스트 노티피케이션을 이용하여 문자형으로 변환된 idValue값을 출력하여 준다.
5. 이제 실행하여 토스트로 출력되는 팝업의 값이 R.java화일에서 봤던 그 값이 맞게 출력되는 것인지를 확인해봅니다.
값이 동일하게 출력되었다면 성공.
getResources().getIndentifier로 레이아웃 리소스 객체의 ID값을 가져올 수 있음을 확인하였다.
6. 이번엔 "main.xml"에 버튼을 5개 추가하여 보자.
6. 다시 gen > com.exam_resources안에 있는 "R.java"화일을 열어본다.
추가한 버튼들의 id 값이 순차적으로 1씩 증가된 것을 확인할 수 있다.
7. 조금전 작성한 코드는 주석 처리하고, 아래에 새로운 코드를 작성해보겠다.
[코드]
for(int i=1;i<=6;i++) {
int getId = getResources().getIdentifier("button"+i, "id", "com.exam_resourcesid");
((Button)findViewById(getId)).setText("버튼"+i);
}
[설명]
18번 라인 - 반복문 for를 이용하여 버튼의 갯수만큼 반복을 하도록 지시
19번 라인 - Integer형 getId에 버튼의 id값을 담는다.
20번 라인 - getId에 담은 버튼의 ID값을 이용하여, ID에 해당하는 버튼의 텍스트를 변경한다.
android.widget.Button도 import해야 한다.
이클립스를 이용한 코딩에서의 주석처리는 코드라인 맨 앞에 //(슬래쉬 두번)을 삽입하여 주는 방법이 있지만 단축키를 이용하는 방법은 주석처리를 하고자 하는 코드에서 Ctrl+/(슬래쉬)를 눌러주면 주석처리되며 여러줄을 블럭으로 지정하고 Ctrl+/를 할 경우 여러줄의 코드를 한번에 주석으로 설정할 수 있다.
주석 해제는 Ctrl+/(슬래쉬)를 다시 한번 눌러주는 것이다.
8. 실행하여 본다. 아래와 같은 결과가 나온다면 성공한 것이다.
'JAVA & Android' 카테고리의 다른 글
android-support-v4를 이용한 Fragment가 갑자기 동작 안될때 (2) | 2013.05.20 |
---|---|
안드로이드 - TabActivity클래스의 사용중지 (2) | 2012.03.15 |
안드로이드 - Toast로 메세지의 출력 위치 변경 (0) | 2012.03.11 |
안드로이드 - 버튼 클릭시 토스트(Toast) 노티피케이션으로 메세지 띄우기 (0) | 2012.03.11 |