개발 공부
Intent (인텐트) 본문
Intent란?
어플리케이션을 구성하는 구성요소(컴포넌트)간의 작업을 수행하기 위한 정보를 전달하는 역할(매세지 객체)을 합니다
예) 액티비티간의 화면전환
사용방법 (main) 1. 인텐트 생성 Intent intent= new Intent(this, second.class); 2. 데이터 저장 intent.putExtea("it_tag", tag); 3. 호출할 액티비티 실행 startActivity(intent); 4. 현재 액티비티 종료 finish(); (second 호출된 액티비티) 5. 자신을 호출한 인텐트 인식 Intent intent = getIntent(); 6. 데이터 추출 String str_tag = intent.getStringExtra("it_tag"); |
Intent 구분
1. 명시적 인텐트
: 메시지를 보낼 대상 컴포넌트를 지정하여 사용
명시적 인텐트 사용 예시 |
1.Intent 객체 생성 생성자 첫번째 인자 : 메세지를 보내는 액티비티 생성자 두번째 인자 : 호출 될 액티비티 |
-단순 호출 Intent intent = new Intent( getApplicationContext(), SecondActivity.class ); //첫번째인자 this가능 startActivity(intent); |
-데이터 넘기기 송신 Activity---------------------------------------- String tag = (String) layout.getTag(); Intent intent = new Intent( this, SecondActivity.class ); intent.putExtra("it_tag", tag); // 인텐트에 it_tag이름으로 tag값을 할당함 startActivity(intent); 수신 Activity---------------------------------------- Intent intent = getIntent(); // 호출한 인텐트 객체 생성 String tag = intent.getStringExtra("it_tag"); // 인텐트변수에서 tag값 추출 |
2. 암시적 인텐트
: 특정 컴포넌트의 클래스명 없이 어떤 작업을 수행할지만 선언
안드로이드에서 제공하는 기존 응용프로그램을 실행시킴
(intent에 어떤 인자를 넣느냐에 따라 전화걸기, 갤러리 등 앱 실행 가능)
암시적 인텐트 사용 예시 |
Intent intent = null; switch (view.getId()){ case R.id.call: intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:(+82)01012345678")); break; case R.id.map: intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo: 36.123456898, 127.15615651651")); break; case R.id.web: intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http: aaaaaa@daum.net")); break; } if(intent !=null){ startActivity(intent); } |
'언어 공부 > android' 카테고리의 다른 글
3. 다중 액티비티 활용 앱 (0) | 2021.06.03 |
---|---|
안드로이드 컴포넌트(구성요소) (0) | 2021.06.03 |
2. 텍스트 출력 (0) | 2021.06.03 |
1. 앱 프로젝트 구조 (0) | 2021.06.02 |