레이아웃 인플레이션 이해하기

인플레이션이란?

레이아웃 인플레이션의 이해 – 호출 순서

setContentView() 메소드의 역할

레이아웃 인플레이션의 개념도

화면 전체와 화면 일부

레이아웃 인플레이션 예제

메인 액티비티의 레이아웃

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_menu"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

…

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="추가하기" />

    <LinearLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent“
        android:orientation="vertical">

    </LinearLayout>

</LinearLayout>

부분 화면을 위한 레이아웃

자바 코드 작성

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_menu);

  container = (LinearLayout) findViewById(R.id.container);

  Button button = (Button) findViewById(R.id.button);
  button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.sub1, container, true);

        CheckBox checkBox = (CheckBox) container.findViewById(R.id.checkBox);
        checkBox.setText("로딩되었어요.");
    }
  });
}

레이아웃 인플레이션 메소드

여러 화면 만들고 화면 간 전환하기

액티비티

새로운 프로젝트 만들고 새 화면 추가

메뉴 화면에 버튼 추가

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);

  if (requestCode == REQUEST_CODE_MENU) {
    Toast.makeText(getApplicationContext(), 
        "onActivityResult 메소드 호출됨. 요청 코드 : " + requestCode + 
        ", 결과 코드 : " + resultCode, Toast.LENGTH_LONG).show();

    if (resultCode == RESULT_OK) {
        String name = data.getExtras().getString("name");
        Toast.makeText(getApplicationContext(), "응답으로 전달된 name : " + name, 
              Toast.LENGTH_LONG).show();
    }
  }
}

실행결과

results matching ""

    No results matching ""