Contents

조회 수 5015 댓글 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
번호 분류 제목 글쓴이 날짜 조회 수
1177 System/OS 해커스랩 깨기.. 후후.. ㅋㅋ file hooni 2013.04.23 19812
1176 Etc 플라스터(Plaster) 수업 내용 secret hooni 2016.05.24 0
1175 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 17838
1174 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 22891
1173 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 17902
1172 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 12756
1171 Etc 티스토리 테이블 html,css 구문 hooni 2013.11.03 17540
1170 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 4271
1169 System/OS 컴파일러 수업 자료(교재 : 컴파일러 입문) file hooni 2003.04.23 23443
1168 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 2829
1167 Etc 캘리포니아 운전면허 문제 file hooni 2017.07.22 3503
1166 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 99 Next
/ 99