안드로이드에서는 액티비티 간에 데이터 전달은 B Intent에 통해서 전달해주어야 합니다. 이렇게 하는 이유는 화면 회전 등과 같은 라이프싸이클 관련된 이벤트가 발생할 때 안드로이드 시스템이 액티비티를 종료시켰다 다시 생성하게 되는데, 이렇게 하면 단순히 클래스 멤버로 등록된 변수는 값을 보전할 수가 없기 때문에, 다시 복구할 수 있도록 하기 위함입니다.
ActivityA에서 아래처럼 Intent에 값을 전달해 줍니다.
RadioButton chekedButton = findViewById(radioGroup.getCheckedRadioButtonId());
String buttonText = checkeButton.getText().toString();
Intent intent = new Intent(this, ActivityB.class);
intent.putExtra(ActivityB.KEY_NAME, buttonText);
startActivity(intent);
키값은 아무 문자열이나 지정해서 사용히시면 되구요, 통상적으로는 Activity 에 상수로 정의해서 사용합니다.
ActivityB에서는 아래처럼 값을 읽어 옵니다.
public class ActivityB extends AppCompatActivity {
public static final KEY_NAME = "아무 키값";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
String buttonText = getInent().getStringExtra(KEY_NAME, "");
}
}
ActivityA에서 ActivityB.KEY_NAME으로 넘겼으르로, getIntent().getStringExtra()를 이용하여 같은 키값으로 읽어오면 됩니다.
getIntExtra의 두번째 인자는 값이 존재하지 않을 때 사용할 기본값입니다.
타입별로 읽는 메소드가 다르므로 (동일한 이름 패턴입니다만), 필요시에는 문서를 참조하세요.
https://developer.android.com/reference/android/content/Intent