loop에서 findViewById 사용하기 (getIdentifier)
2019. 2. 11. 16:21ㆍProgramming/Android
반응형
getIdentifier(), Android Developers
public int getIdentifier (String name, String defType, String defPackage)
주어진 리소스의 이름을 통해, 리소스의 식별자(id)를 반환한다. package:type/entry
형식으로 완전히 정규화된 이름(fully qualified resource name)을 사용할 수 있다. 완전히 정규화된 이름을 사용할 때는 defType과 defPackage를 생략할 수 있다.
여러개의 리소스가 규칙적인 이름을 가지고 있을 때 사용한다.
Button button1 = (Button) findViewById(R.id.button1);
Button button2 = (Button) findViewById(R.id.button2);
Button button3 = (Button) findViewById(R.id.button3);
Button button4 = (Button) findViewById(R.id.button4);
위의 코드를 getIdentifier를 사용하면, 다음과 같이 수정할 수 있다.
for(int idx_loop=0; idx_loop<4; idx_loop++) {
int buttonId = getResources().getIdentifier("button"+idx_loop, "id", getPackage());
Button buttonN = (Button)findViewById(buttonId);
}
getIdentifier()
를 사용하는 경우, 규칙적으로 이름지어져있는 리소스에 접근하는 코드를 간결하게 정리할 수 있다.
참조: Android - findViewById() in a loop, PARESH MAYANI
참조2: Android: Using findViewById() with a string / in a loop, stackoverflow
반응형
'Programming > Android' 카테고리의 다른 글
RecyclerView와 IndexOutOfBoundsException (0) | 2019.02.14 |
---|---|
WebView와 WebSettings (0) | 2019.02.12 |
Android Gradle Plugin 3.0의 Implementation과 api (0) | 2019.02.07 |
Android Studio의 AVD에서 LG폰이 검색되지 않을 때 (0) | 2019.02.07 |
Multidex와 관련된 문제 정리 (0) | 2019.02.07 |