레이아웃 XML로 UI를 구성한다고 가정했을 때, 각각의 뷰 태그에는 여러가지 속성을 부여해 값을 조정할 수 있습니다. HTML의 태그 별 속성을 떠올리시면 쉽게 이해가 되실 것입니다.
이번 아티클에서는 가장 기본적이면서도 자주 사용하게 되는 뷰 - TextView를 기준으로 뷰 클래스의 공통적인 속성에 대해서 하나씩 살펴보도록 하겠습니다.
○ id 속성
id 속성은 필수 속성은 아닙니다. 각각의 뷰를 식별할 수 있는 구분자로 사용되는데, 이를 자바 코드에서 불러와 컨트롤하는데 사용하게 됩니다. 앞서서 setContentView( ) 함수에 대해서 살펴보았는데, 이와 연계하여 화면을 구성하는 데 사용하게 되죠.
setContentView( ) 함수 호출 → 레이아웃 XML 호출 → XML에 선언해둔 객체 자동 생성 → R.java에 id 값을 변수로 하여 리소스 등록 → id 값을 파라미터로 전달해 findViewById( ) 함수로 뷰 객체 리턴
뭔가 복잡해 보이지만, 사실 상당히 간단한 프로세스입니다. 일단 임의의 TextView 하나에 id를 부여해 보겠습니다. id 속성은 "@+id/{id}" 형식으로 선언됩니다.
<TextView
android:id="@+id/myText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello!" />
레이아웃 XML에서 위와 같이 텍스트 뷰 하나를 선언했습니다. 여기에서 id는 myText로 선언해 두었습니다. 그렇다면 이 텍스트 뷰를 액티비티 코드에서 자바로 호출해 객체로 획득하려면 어떻게 할까요?
TextView myText = findViewById(R.id.myText);
위와 같은 방식으로 사용하면 됩니다. R.java를 다루었던 편에서도 배웠던 사항이지만, 위와 같이 XML에서 id 속성을 부여하게 되면 R.java에서도 엄밀히 리소스는 아니지만 id 클래스에 변수가 선언됩니다. 그래서 위와 같은 형식으로 findViewById( )를 사용할 수 있게 되는 것이죠.
public static final class id {
// ...
public static final int myText = 0x7f0b0059;
//...
}
R.java에 관한 내용이 기억에서 가물가물하다면, 다시 한번 아래 아티클에서 R.java에 대한 기본적인 개념을 복습하고 오도록 하겠습니다.
2. 안드로이드 기본 구조의 이해 (4) - 앱 디렉토리와 파일
이번 아티클에서는 안드로이드 스튜디오에서 앱을 개발하게 될 때, 개발자가 이해해야 하는 파일, 디렉터리 구조를 살펴보도록 하겠습니다. 우선 프로젝트에서 '모듈(앱)' 레벨의 작업이 시작되
nozeroslope.tistory.com
'Programming > Android' 카테고리의 다른 글
3. 사용자 인터페이스 구현 (3) - 뷰의 기초 공통 속성 3 (1) | 2024.05.03 |
---|---|
3. 사용자 인터페이스 구현 (3) - 뷰의 기초 공통 속성 2 (1) | 2024.02.08 |
3. 사용자 인터페이스 구현 (2) - UI 작성법 : JAVA vs XML [2/2] (0) | 2024.02.02 |
3. 사용자 인터페이스 구현 (2) - UI 작성법 : JAVA vs XML [1/2] (0) | 2024.02.01 |
3. 사용자 인터페이스 구현 (1) - UI 기본 구조 (0) | 2024.01.18 |