Contents

조회 수 3948 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

동적인 문자열로 리소스 가져오는 방법.

문자열로 해당 Resource (혹은 레이아웃에 포함된 View) 의 ID 값을 가져온다;


-----------------------------------------------------------------

getResources().getIdentifier(패키지명:디렉토리/파일명, null, null);

또는,

getResources().getIdentifier(파일명, 디렉토리명, 패키지명);

-----------------------------------------------------------------


String resName = "@drawable/imgEnd";
String packName = this.getPackageName(); // 패키지명
int resID = getResources().getIdentifier(resName, "drawable", packName);

String viewName = "imgViewEnd";
String packName = this.getPackageName(); // 패키지명
int resID = getResources().getIdentifier(resName, "id", packName);


주로 리소스/뷰의 이름을 조합형식으로 만들어 가져와야 할 경우 이런 코드를 사용할 수 있다.

예를 들어,

for (int i=0; i < 3; i++) {
    String resName = "@drawable/img_" + i;
    // 결론적으로 이미지 리소스 이름은 img_1, img_2, img_3 이 되겠다;
    int resID = getResources().getIdentifier(resName, "drawable", packName);

    ImageView iv = (ImageView)findViewById(R.id.imgView);
    iv.setImageResource(resID); // 이미지뷰의 이미지를 설정한다;
}


적용한 샘플코드 ㅋㄷ

int count = 0;
for(int r=0; r<puzButtons.length; r++){
    for(int c=0; c<puzButtons[r].length; c++){
    // getResources().getIdentifier(패키지명:디렉토리/파일명, null, null);
    //String buttonName = getPackageName() + ":id/btn" + r + c;
    //int id = getResources().getIdentifier(buttonName, null, null);

    // 또는, getResources().getIdentifier(파일명, 디렉토리명, 패키지명);
    String idName = "btn" + r + c;
    int id = getResources().getIdentifier(idName, "id", getPackageName());

    puzButtons[r][c] = (Button)findViewById(id);
    puzButtons[r][c].setText(Integer.toString(ar[count]));
    if(listen == true) {
        puzButtons[r][c].setOnClickListener(listener);
    }
    puzButtons[r][c].setTag(new Point(r,c));

    if(ar[count] == 0){
        curPoint.set(r, c);
        puzButtons[r][c].setText("");
    }

    count++;
    }
}


?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
61 Develop [ios] 비디오,네트워크,소셜로그인 테스트 file hooni 2017.04.04 694
60 Develop [ios] NSString, RegularExpression Find/Replace hooni 2017.04.14 844
59 Develop [ios] Facebook SDK 로그인 설명 file hooni 2017.04.19 1164
58 Develop [ios] 코코아 프로그래밍의 네이밍 룰(명명 규칙) hooni 2017.05.11 1187
57 Develop 리팩토링 계획안 file hooni 2017.05.15 755
56 Develop 사이버보안실무 발표자료 (2017.06.08) file hooni 2017.06.05 1218
55 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 742
54 Develop [android] 간단한 SQLIite 예제 hooni 2017.06.14 1334
53 Develop [android] SQLiteOpenHelper를 이용한 DBManager hooni 2017.06.14 2076
52 Develop [coding] Find all anagrams in a string hooni 2017.06.27 1145
51 Develop [coding] 공부해야 하는거 ㅋㅋ secret hooni 2017.06.27 0
50 Develop [android] 안드로이드 앱 문서 샘플 file hooni 2017.07.11 2111
Board Pagination Prev 1 ... 61 62 63 64 65 66 67 68 69 70 71 Next
/ 71