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

인플레이션이란?

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

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();
}
}
}
실행결과
