Android

Android Studio - 액티비티 간의 단방향 데이터 전달방법

Cong_S 2022. 7. 13. 15:48

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);

// 데이터만 전달하는 경우
startActivity(intent);

여러 UI 개체들을 통해 입력된 데이터들을 여러 변수에 저장한 후 다른 액티비티로 데이터를 옮기려 한다.

다시 올 필요가 없으므로 단방향으로만 전달되면 된다.

이 때는 intent를 만든 후 putExtra 메소드를 사용한다. 

- 첫번째 파라미터 : 키 값 지정

- 두번째 파라미터 : 데이터 또는 데이터가 들어있는 변수 

 

그 후 앞서 배운 것처럼 startActivity메소드에 intent 를 넣어주면 된다.

 

// 넘어오는 데이터가 있으면 처리해 준다.
String email = getIntent().getStringExtra("email");
String name = getIntent().getStringExtra("name");
int age = getIntent().getIntExtra("age", 0);
double hiddenData = getIntent().getDoubleExtra("hidden", 0);

데이터를 받을 때는 getIntent메소드와 각 데이터 Extre 메소드를 사용한다.