728x90
액티비티간 데이터를 양방향으로 전달하는 방법
기기의 물리 Back버튼을 눌렀을때 두번째 액티비티의 데이터를 첫번째 액티비티로 전달하는 방법
두번째 액티비티
onBackPressed() 를 이용한다.
1. 먼저 Intent를 만들어준다.
Intent intent = new Intent();
2. intent에 데이터를 넣어준다.
intent.putExtra("age10",age);
3. 돌려줄 때는 startActivity가 아니라 setResult 함수를 이용한다. (처리코드 , 보낼 데이터 )
setResult(0,intent );
전체 코드
@Override
public void onBackPressed() {
Log.i("LifeCycleApp", "두번째 액티비티 onBackPressed 함수 실행");
// 10년 후의 나이를 메인액티비티로 전달!!!
Intent intent = new Intent();
intent.putExtra("age10",age);
// 돌려줄때는 startActivity 가 아니라, setResult 함수 이용
setResult(0,intent );
// 프레임워크가 할일 하라는 코드.
super.onBackPressed();
}
첫번째 액티비티
1. Intent를 받아오는 ActivityResultLauncger 함수를 멤버변수에 저장한다.
ActivityResultLauncher<Intent> launcher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
if(result.getResultCode() == 0){
int age10 = result.getData().getIntExtra("age10",0);
txtAge.setText(""+age10);
}
}
});
2. 오버라이드 한 함수 안에 if문을 사용해서 처리코드가 0이면 데이터를 가져오는 코드 작성 getIntExtra(데이터의 key , 처리코드)
3. 그 후에 텍스트뷰에 띄우는 함수 사용하기
728x90
'안드로이드' 카테고리의 다른 글
안드로이드 - SQLite3 데이터베이스 활용하는 방법(SQLiteOpenHelper 상속) (0) | 2023.01.31 |
---|---|
안드로이드 - sharedPreference 를 이용한 데이터 저장과 불러오기 (0) | 2023.01.31 |
안드로이드 - 액티비티 간의 단방향 데이터 전달방법 (0) | 2023.01.30 |
안드로이드 - 액티비티 간의 화면 전환 방법과 intent (0) | 2023.01.30 |
안드로이드 - 액티비티 라이프 사이클 주요 4개 함수 (0) | 2023.01.30 |