Intent로 액티비티간 화면 전환하는 포스팅을 한 적이 있다.
https://cong-s.tistory.com/237
Android Studio - 새로운 Activity 추가하기 / 액티비티간에 연결하기
새로운 액티비티를 만들어보자. 위 캡쳐대로 만들수 있다. Main의 onCreate 안에 아래와 같이 Intenr와 startActivity 코드를 작성해 액티비티를 연결할 수 있다. Intent intent = new Intent(MainActivity.this,..
cong-s.tistory.com
이번에는 액티비티 간의 데이터 전달 방법을 알아볼 것이다. 이번에는 양방향 데이터 전달을 알아보자.
String email = editEmail.getText().toString().trim();
String name = editName.getText().toString().trim();
String ageStr = editAge.getText().toString().trim();
int age = Integer.valueOf(ageStr).intValue();
double hiddenData = 3.1414;
// 새로운 액티비티를 띄우고,
// 데이터를 전달한다.
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("email", email);
intent.putExtra("name", name);
intent.putExtra("age", age);
intent.putExtra("hidden", hiddenData);
// 실행한 액티비티로부터 데이터를 받아오는 것이 있는 경우!!
// 아래 코드는 예전엔 사용했지만 업데이트 후 사용 안 함
// startActivityForResult(intent, 0);
// 위에서 만든 메소드로 사용
startActivityResult.launch(intent);
여러 UI 개체들을 통해 입력된 데이터들을 여러 변수에 저장한 후 다른 액티비티로 데이터를 옮기려 한다.
먼저 intent를 만든 후 putExtra 메소드를 사용한다.
- 첫번째 파라미터 : 키 값 지정
- 두번째 파라미터 : 데이터 또는 데이터가 들어있는 변수
다시 데이터가 오게 만드는 코드는 다음과 같다.
예전에는 startActivityForResult를 사용했지만 업데이트되며 현재는 사용하지 않게 되었다.
현재는 다음과 같이 작업한다.
// 내가 실행한 액티비티로 부터, 데이터를 받아와서 처리하는 코드
ActivityResultLauncher<Intent> startActivityResult =
registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
// result 에는 resultCode 가 있다.
// resultCode 의 값으로, 여러가지 구분해서 사용이 가능.
if (result.getResultCode() == 0){
int age = result.getData().getIntExtra("age", 0);
editAge.setText(""+age);
}
}
});
다음과 같은 메소드를 startActivityResult라는 변수에 담은 것이다. onCreate 밖에서 미리 만들어둔 위 코드를 이용해
맨 마지막에
startActivityResult.launch(intent);
startActivityResult 에다가 intent 를 담아서 launch 해준다.
'Android' 카테고리의 다른 글
Android Studio - SQLite3 데이터베이스 활용하는 방법 (0) | 2022.07.14 |
---|---|
Android Studio - SharedPreferences를 이용한, 데이터의 저장과 불러오기 (0) | 2022.07.13 |
Android Studio - 액티비티 간의 단방향 데이터 전달방법 (0) | 2022.07.13 |
Android Studio - 이메일 형식 체크하는 코드 (0) | 2022.07.13 |
Android Studio - 이미지뷰 안 나올 때 해결 방법 (0) | 2022.07.13 |
댓글