[안드로이드] Intent(2) - 명시적 인텐트(Explicit intent)
[안드로이드] Intent(2) - 명시적 인텐트(Explicit intent)
2. 명시적 인텐트(Explicit intent)
=> 호출하거나 메시지를 보낼 대상 컴포넌트 이름을 지정하는 방식
=> 주로 애플리케이션 내의 컴포넌트 호출 및 데이터 전달 시 사용
=> 인텐트 필터가 정의 되어 있지 않더라도 컴포넌트를 호출 및 메시지를 전달 할 수 있음
(1) startActivity
▪ 다른 액티비티 호출
//다른 액티비티 호출
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
▪ 다른 액티비티에 값 전달
=> 거의 모든 타입에 대해 오버로딩되어 있으며 배열이나 객체까지 저장가능
//다른 액티비티에 값 전달
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("name", "워니"); //인텐트 객체에 데이터 담기
startActivity(intent);
▪ 전달된 값 받기
//전달된 값 받기
Intent intent = getIntent();
String value = intent.getStringExtra("워니"); //인텐트 객체에 담긴 데이터 읽어오기
(2) startActivityForResult
▪결과값을 받기 위한 액티비티 호출 - startActivityForResult 메소드 사용
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivityForResult(intent, 1);
/* 위에서 1은 호출 대상을 나타내는 식별자이며 0이상의 중복되지 않는 정수를 넘기되
음수를 넘길 경우는 리턴을 받지 않겠다는 뜻이다.
콜백 함수의 requestCode 값이 된다. */
▪ 전달된 값을 받기 위한 콜백 함수 정의 - 호출된 액티비티가 종료되면 onActivityResult가 호출 된다.
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case 1:
if(resultCode == RESULT_OK) {
String value = data.getStringExtra("키");
}
break;
}}
▪ 호출된 액티비티에서 값 전달
Intent intent = new Intent();
intent.putExtra(“key”, “value”);
setResult(RESULT_OK, intent);
finish();
[안드로이드] Intent(2) - 명시적 인텐트(Explicit intent)
'구성 > 인텐트(Intent)' 카테고리의 다른 글
[Android] 안드로이드 - 인텐트(Intent)를 활용한 액티비티(Activity)간 데이터 전달하기 (0) | 2021.12.02 |
---|---|
[Android] 안드로이드 - 인텐트(Intent)를 활용한 액티비티(Activity) 생성 및 실행하기 (0) | 2021.12.02 |
[Android] 안드로이드 - 어플리케이션 4대 구성요소 (Component) (0) | 2021.11.30 |
[안드로이드] intent를 이용한 화면전환 (0) | 2018.01.17 |
[안드로이드] Intent(4) - 인텐트 플래그를 이용한 Activity 스택 관리 (0) | 2018.01.17 |
[안드로이드] Intent(3) - 암시적 인텐트(Implicit intent) (0) | 2018.01.17 |
[안드로이드] Intent(1) - 인텐트(Intent) 개요 (0) | 2018.01.17 |
[Android] Intent 활용 예시 (0) | 2018.01.17 |