[챕터 2-2-6] 오리엔테이션
2020. 2. 9. 13:31ㆍAndroid/Android 챕터 2-2
반응형
결과화면
초기화면
닉네임 입력
가로 방향으로 전환
가로 방향으로 전환되면서 없어진 세로 방향의 데이터를 가지고 온 것을 확인할 수 있다.
오리엔테이션 (방향 이벤트)
방향에 따라 오리엔테이션 이벤트가 발생하는데 단말의 센서에 의해 발생.
세로방향 (기본)
res/layout/activity_main.xml
가로방향 (기본)
res/layout-land/activity_main.xml
프로젝트명 : MyOrientation
res/ 디렉토리에서 디렉토리 생성
Project Files 로 보기
layout-land 디렉토리 생성 확인
layout 의 activity_main.xml 복사해서
lyaout-land 디렉토리에 복사
더보기
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#2800BCD4"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="가로방향"
android:textColor="#FF5722"
android:textSize="50sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity
더보기
package org.minokuma.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showToToast("onCreate 호출됨");
}
public void showToToast(String data){
Toast.makeText(this, "data", Toast.LENGTH_SHORT).show();
}
}
showToToast() 위에서
Alt + Insert 해서 onDestroy() 지정
더보기
package org.minokuma.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showToToast("onCreate 호출됨");
}
@Override
protected void onDestroy() {
super.onDestroy();
showToToast("onDestroy 호출됨");
}
public void showToToast(String data){
Toast.makeText(this, data, Toast.LENGTH_SHORT).show();
}
}
MainActivity.java
더보기
package org.minokuma.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
String name;
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showToToast("onCreate 호출됨");
editText = findViewById(R.id.editText);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (editText != null) {
name = editText.getText().toString();
showToToast("사용자 입력값을 name 변수에 할당함");
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
showToToast("onDestroy 호출됨");
}
public void showToToast(String data){
Toast.makeText(this, data, Toast.LENGTH_SHORT).show();
}
}
showToToast() 위에서 Alt + Insert 후 onSaveInstanceState
MainActivity.java
더보기
package org.minokuma.myapplication;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
String name;
EditText editText;
TextView textView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showToToast("onCreate 호출됨");
editText = findViewById(R.id.editText);
textView2 = findViewById(R.id.textView2);
Button button = findViewById(R.id.button);
if (button != null) {
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (editText != null) {
name = editText.getText().toString();
showToToast("사용자 입력값을 name 변수에 할당함");
}
}
});
}
if (savedInstanceState != null){
if (textView2 != null){
name = savedInstanceState.getString("name");
textView2.setText(name);
showToToast("값을 복원했습니다. : " + name);
}
}
}
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("name", name);
}
@Override
protected void onDestroy() {
super.onDestroy();
showToToast("onDestroy 호출됨");
}
public void showToToast(String data){
Toast.makeText(this, data, Toast.LENGTH_SHORT).show();
}
}
반응형
'Android > Android 챕터 2-2' 카테고리의 다른 글
[챕터 2-2-8] 토스트 (0) | 2020.02.09 |
---|---|
[챕터 2-2-7] 오리엔테이션 (방향전환) 2 (0) | 2020.02.09 |
[챕터 2-2-5] 이벤트 (0) | 2020.02.09 |
[챕터 2-2-4] Drawable 3 (0) | 2020.02.09 |
[챕터 2-2-3] Drawable 2 (0) | 2020.02.09 |