IT_Programming/Android_Java
[펌] 간단히 다중 위젯의 인스턴스 확보하기
JJun ™
2012. 10. 5. 22:19
출처: http://oic.tstore.co.kr/front/community/mentoring/viewMentoring.action?seq=128
[내용]
[전제조건]
Button이 10개 배치 되어 있는 경우 (예를 들면 다이얼 패드 등과 같이)
[방법]
[방법]
1. xml에서 Button의 이름 끝에 번호값 형태로 부여 한다.
1번 버튼: android:id="@+id/button_0"
2번 버튼: android:id="@+id/button_1"
0 ~ 9를 부여해서 10개의 버튼을 만든다..
2. 코드상에서 해당 버튼의 인스턴스는 다음과 같이 구한다.
1번 버튼: android:id="@+id/button_0"
2번 버튼: android:id="@+id/button_1"
0 ~ 9를 부여해서 10개의 버튼을 만든다..
2. 코드상에서 해당 버튼의 인스턴스는 다음과 같이 구한다.
Button[] mButton = new Button[10]; int nResId = 0; Resources oRes = getResources(); String strPkgName = getPackageName(); for (int i=0; i<10; i++) { nResId = oRes.getIdentifier("button_" + i, "id", strPkgName); mButton[i] = (Button)findViewById(nResId); } |
[기타]
getIdentifier() 메소드는 R 클래스에 있는 것을 가져 올 수 있기 때문에
ID 뿐만 아니라, drawable, string 도 유사하게 처리 할 수 있습니다.
응용이 가능합니다.