Activity 호출하기
Activity를 호출하는 방법에는 2가지 방법이 있습니다.
단방향으로 호출하는 방식과 결과를 반환하는 방식입니다.
- startActivity( intent );
- startActivityForResult( intent, {호출번호} );
Ex.1) 버튼 클릭시, startActivity()를 이용한 SubActivity.class 호출
button1.setOnClickListener( new Button.OnClickListener() {
@Override
public void onClick( View v ) {
Intent intent = new Intent( getApplicationContext(), SubActivity.class );
startActivity( intent );
}
} );
- new Intent( {context}, {호출할 Activity} ); // 호출할 Activity 선언
- startActivity( intent ); // 실제 호출하는 함수
Ex.2) 버튼 클릭시, startActivityForResult()를 이용한 SubActivity.class 호출
button1.setOnClickListener( new Button.OnClickListener() {
@Override
public void onClick( View v ) {
Intent intent = new Intent( getApplicationContext(), SubActivity.class );
startActivityForResult( intent, 1000 );
}
} );
- startActivityForResult( intent, {호출번호} );
두가지 방식 모두 사용방법은 유사합니다.
startActivityForResult() 메소드는 결과값을 onActivityResult() 메소드로 반환받을 수 있습니다.
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if( requestCode == 1000 && resultCode == RESULT_OK ) {
// 반환된 값을 처리
// data.getIntExtra(); 메소드로 값을 가져올 수 있다.
}
}
- requestCode : startActivityForResult()로 호출시 넘겨줬던 2번째 인자값.( 호출번호 )
- resultCode : 결과코드( 성공/실패 등 )
- data : 반환된 데이터
호출된 화면에서 결과를 반환하기 위해 처리하는 부분은 다음과 같습니다.
Intent intent = new Intent();
intent.putExtra( "CUR_HP", iUserCurHP );
setResult( RESULT_OK, intent );
finish();
- intent.putExtra() 메소드를 이용하여, 반환될 값을 key-value로 세팅
- setResult( {resultCode}, intent ) : 결과코드 세팅
호출시 파라미터 전달
Activity를 호출할 때 전달해야 할 데이터가 있을 수 있습니다.
이를 세팅하는 방법과 전달 받은 Activity에서 사용하는 방법입니다.
1. 전달할 파라미터 세팅
- Activity를 생성할 때 사용한 Intent객체에 key-value로 값을 세팅하여 전달할 수 있습니다.
- Intent.putExtra( key, value ) 함수를 사용합니다.
Intent intent = new Intent( getApplicationContext(), InfoActivity.class );
intent.putExtra( "OBJ_ID", txtObjId.getText() );
context.startActivity( intent );
- 호출할 Activity( InfoActivity.class )를 선언합니다.
- 파리미터를 "OBJ_ID"라는 key로, TextView객체인 txtObjId의 값을 getText()하여 전달합니다.
- startActivity()로 선언된 Activity( InfoActivity.class )를 호출합니다.
2. 전달받은 파라미터 사용
- 호출한 Activity에서 Intent객체에 세팅하여 전달된 파라미터 값을 가져옵니다.
- Intent.getExtra( key ) 함수를 사용합니다.
if( intent.getExtras() != null ) {
if( intent.getExtras().containkey( "OBJ_ID" ) ) {
String strObjId = intent.getExtras().get( "OBJ_ID" ).toString();
}
}
- 파라미터 정보( Extras )가 없을 수 있으므로, null 체크를 합니다.
- 파라미터 정보는 있으나, 가져올 Key값이 없을 수 있으므로 null체크를 하였습니다.
- Intent객체에 포함된 값을 intent.getExtras().get( key )로 가져와서 String 변수에 넣었습니다.
The End.
'Study > Android Studio' 카테고리의 다른 글
[Android] 문자열로 Resource 접근하기 (0) | 2021.02.13 |
---|---|
[Android] ImageView (0) | 2021.02.12 |
[Andorid] ProgressBar 사용하기 (0) | 2021.02.11 |
[Android] 인트로 화면 만들기 (0) | 2021.02.08 |
[Android] ConstraintLayout (0) | 2021.02.07 |