mobile/android

6_Android_(단말 방향 전환)

스파이크12 2020. 5. 6. 11:54

app/src/main/res/layout-land

layout과 같은 역할을 하지만 가로 방향으로 보일때 사용되는 xml레이아웃파일을 모아두는 곳

* 방향이 바뀔때 액티비티를 메모리에 없앴다가 다시 만듬

onCreate() : 화면이 보이기전에 메모리에 만들어지는 시점

onStart() : 화면에 보이기전에 실행

onStop() : 화면에 보이다가 없어지면 실행

onDestory() : 메모리에 없어지는 시점

// Bundel : 여러가지 타입값을 저장하는 Map 클래스

// 안드로이드에서는 Acitivity간에 데이터를 주고 받을때 Bundel 클래스를 사용하여 데이터를 전송한다

단말방향전환시 변수값 유지 방법

onSaveInstanceState() : 단말방향전환시 변수의 값을 저장해놓을수 있는 메소드

(단말방향전환시 기존엑티비티를 삭제하고 새로운 엑티비티를 생성함)

1. onSaveInstacneState(Bundel outState) 메소드 오버라이드해서 변수값을 저장함

outState.putString("name", name);

2. if(saveInstanceState != null) {

// 화면전환시 onCreate메소드 실행

// onCreate()는 매개변수로 saveInstanceState를 사용함

// 변수(name)을 담고 있으므로 널이아님

name = saveInstanceState.getString("name");

}

화면방향전환시 액티비티 삭제/생성 안하고 유지

1. AndroidManifest.xml 안에 activity 설정

android:configChanges = "orientation|screenSize|keyboardHidden"

configChanges를 설정해놓으면 단말의 방향이 바뀌는 시점에 configurationChanged() 메소드가 자동으로 호출

2. MainActivity에 onConfigurationChanged()메소드 오버라이드