별의 공부 블로그 🧑🏻‍💻
728x90
728x170

- super.onCreate() 메소드 : 단순히 부모 클래스의 동일한 메소드를 호출.

- setContentView() 메소드 : 애플리케이션이 XML 레이아웃의 내용을 이해하도록 만드는 역할을 함.

- 안드로이드에서는 화면을 구성하는 방법으로 XML 레이아웃을 사용하는데 이 XML 레이아웃 파일의 내용은 애플리케이션이 실행될 때 메모리로 로딩되어 객체화 됨.

- 인플레이션(Inflation) : XML 레이아웃에 정의된 내용이 메모리 상에 객체화되는 과정.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package org.androidtown.basic.inflater;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class SampleInflationErrorActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        Button button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                
            }
        });
        
        setContentView(R.layout.activity_main);
 
    }
 
}
 
cs

 

- setContentView() 메소드

1) 화면에 나타낼 뷰를 지정하는 역할

2) XML 레이아웃의 내용을 메모리 상에 객체화하는 역할

 

- LayoutInflater 클래스 : 화면 전체가 아닌 일부 뷰만을 위한 XML 레이아웃을 매모리 상에 객체화 함. 전체 화면 중에서도 일부분만을 차지하는 화면 구성요소들을 XML 레이아웃에 로딩하여 보여줌.

ex) getSystemService(Context.LAYOUT_INFLATER_SERVICE)

- 시스템 서비스로 제공되는 기능들은 모두 getSystemService()라는 메소드를 사용하여 객체를 참조한 후 사용해야 함.

- 메인 레이아웃이 /res/layout/activity_main.xml 파일 안에 XML로 정의되어 있으면 setContentView(R.layout.activity_main)이라는 코드를 통해 화면에 나타낼 수 있음.

- 그 중 일부를 분리하여 /res/layout/button.xml이라는 파일에 정의하였다면 이 파일의 내용은 LayoutInflater 개체를 이용해 뷰그룹 객체로 객체화(인플레이션)한 후 메인 레이아웃에 추가되는 과정을 거치게 됨.

- View inflate (int resource, ViewGroup root, boolean attachToRoot)
1) XML 레이아웃 리소스를 지정하는 값

2) 뷰들을 객체화하여 추가할 대상이 되는 부모 컨테이너

- LayoutInflater 객체의 경우, 시스템 서비스로 제공되므로 getSystemService() 메소드를 이용해 객체를 참조하지만 LayoutInflater 클래스에 정의된 from() 메소드를 사용할 수도 있음.

→ static LayoutInflater LayoutInflater.from (Context context)

- LayoutInflater를 내부적으로 지원하는 View의 클래스 메소드를 이용하는 방법도 있음.

→ static View inflate (Context context, int resource, ViewGroup root)

 

출처 : Do It! 안드로이드 앱 프로그래밍 (정재곤 지음, 이지스퍼블리싱)

728x90
그리드형(광고전용)

'Programming > Android' 카테고리의 다른 글

멀티 터치 (Multi Touch)  (0) 2017.03.13
매니페스트 (Manifest)  (0) 2017.01.25
위험 권한의 세부 정보  (0) 2017.01.25
수명주기  (0) 2017.01.24
기본 위젯들  (0) 2017.01.17
프레임 레이아웃과 뷰의 전환  (0) 2017.01.17
스크롤뷰  (0) 2017.01.17
테이블 레이아웃  (0) 2017.01.17
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖