반응형
package com.example.eevent;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
//가로세로회전시 activity 바꾸고 싶은경우
// res하위폴더에 layout-land만들고 그곳에 activity.xml파일 만들면. 단말 방향바꿀때 land파일의 xml을 읽는방식
//-단말의 방향이 바뀔때마다 액티비티를 메모리에서 없앴다가 다시 만든다.
//이경우 선언해둔 모든 변수값을 저장했다가 다시 복원하는 방법 =>onsaveInstanceState 콜백메서드:액티비티가 종료전 상태저장=>oncreate메서드가 호출될때 번들객체로 복원가능
//아래코드는 액티비티가 없어졋다가 새로만들어지는 것을 토스트로 확인
public class MainActivity extends AppCompatActivity {
String name;
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) { //화면에 보이기 전에 메모리에 만들어져야함
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// showToast("onCreate호출");
editText=findViewById(R.id.edittext);
Button button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
name=editText.getText().toString();
showToast("입력된값 변수에저장했습니다"+name);
}
});
if(savedInstanceState!=null){
name=savedInstanceState.getString("name");
showToast("값 복원했습니다"+name);
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("name",name); //name변수저장
}
@Override
protected void onStart() { //화면에 보이기전
super.onStart();
// showToast("onStart호출");
}
@Override
protected void onStop() {//화면이 보이다가 없어지면
super.onStop();
// showToast("onStop호출");
}
@Override
protected void onDestroy() { //메모리에서 없어지는경우
super.onDestroy();
// showToast("onDestroy호출");
}
/*activiy.xml 재생성 하고 싶지 않을때
manifest에서 configuration추가
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) { //configureation 객체에는 orientaion성분이 들어있어서 비교할수있다.
super.onConfigurationChanged(newConfig);
if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE)
{
// showToast("방향:orientation_landscape");
}
else if(newConfig.orientation==Configuration.ORIENTATION_PORTRAIT)
{
// showToast("방향:orientation_portrait");
}
}
*/
//context
//어플리케이션에 관하여 시스템이 관리하고 있는 정보에 접근하기
//안드로이드 시스템 서비스에서 제공하는 API 를 호출 할 수 있는 기능
public void showToast(String data) {
Toast.makeText(this,data,Toast.LENGTH_LONG).show();
}
}
1.가로,세로 activity.xml 두개 따로만드는경우
2. 한개의 activity.xml로 처리하는경우
두가지가 있다..
반응형
'안드로이드' 카테고리의 다른 글
스레드와 핸들러 이해하기 (0) | 2021.02.03 |
---|---|
Intent란 (0) | 2021.01.27 |
[안드로이드] 검색 기능 (0) | 2018.01.02 |
[안드로이드]dialog size 조절 , 레이아웃 조절 (1) | 2018.01.02 |
[안드로이드] DB 사용하기 (0) | 2017.12.29 |