본문 바로가기

Programming

[Android] R Class

728x90
반응형

public final class R {

public static final class attr {
}


public static final class drawable{

public static final int icon = 0x7f020000;

}


public static class id {

public static final int mybutton = 0x7f050001;

public static final int myedit = 0x7f050003;

public static final int mylinear = 0x7f050000;

public static final int mytext = 0x7f050002;

}


public static class layout {

public static final int main = 0x7f030000;

}


public static final class string{

public static final int app_name = 0x7f040001;

public static final int hellow = 0x7f040000;

}



XML에 적은것은 코드가 아니다. 하지만 실질적으로 프로그램을 돌아가게 하는것은 XML파일이 아니고 JAVA파일이다. 떄문에 안드로이드에서는 XML에 적은 값들을 이용해서 java코드로 변화시키며, 각각의 객체들을 메모리상에 저장을 하게된다. java 코드 상에서 xml을 읽으라고 지정해주는 메서드는 setContentView 이다.

setContentView(R.layout.(xml이름) )

ex) setContentView(R.layout.mainXml)

과 같은 형태로 쓰인다.


이러한 부분을 이해를 한다면 앱이 실행 되는 도중에도 각 레이아웃이나 뷰의 속성을 바꿀수 있을것이라고 생각 할 수 있다. 코드상에서 속성을 변경 시키기 위해서 가장 먼저 해야할 것은 ID값을 읽어오는 것이다. ID값을 이용하여 각각의 속성을 지정해 줄 수 있다.


XML에 지정한 ID는 R.java에 자동으로 정의된다. 그래서 코드상에서 ID를 찾을때에는 findViewById 함수를 이용하여 ID를 지정하며

(객체클래스) (변수) = (객체클래스)findViewById( R.id.(지정한ID) )

ex ) Button Mybtn = (Button)findViewById( R.id.mybutton )

의 형태로 사용을 하게 된다. 


위의 형태로 ID값을 받아 오면 각각의 속성을 변경 시킬 수 있다. 방법은 XML에서와의 방법이 비슷하기 때문에 금방 알수 있으니 생략한다.


반응형