마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

radiogroup 값 intent 전달

0 추천
액티비티 A에서  라디오그룹에 체크된 문자 값을 액티비티 B로 넘겨줄라고 하는데요

간단한 코드와 함께 설명해주시면 감사하겠습니다.
baoza (120 포인트) 님이 2022년 4월 24일 질문

1개의 답변

0 추천

안드로이드에서는 액티비티 간에 데이터 전달은 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

 

spark (224,800 포인트) 님이 2022년 4월 24일 답변
spark님이 2022년 4월 24일 수정
...