본문 바로가기

Programming/Android

3. 사용자 인터페이스 구현 (3) - 뷰의 기초 공통 속성 1

android studio logo image

 

 

레이아웃 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