인텐트란 하나의 액티비티에서 다른 액티비티로 전환하기 위한 도구입니다.
인텐트를 사용하여 다른 액티비티에 전달해야 하는 값을 넘겨줄 수도 있습니다.
인텐트는 크게 명시적 인텐트와 암시적 인텐트가 있습니다.
명시적 인텐트
명시적 인텐는 어떤 액티비티로 넘어갈지 명확하게 아는 상태에서 사용합니다.
예를들어 MainActivity에서 버튼을 누르면 TargetActivity로 넘어가는 상황에서, 버튼을 누르면 무조건 TargetActivity 로 넘어가기 때문에 명시적 인텐트를 사용합니다.
val intent = Intent(this, TargetActivity::class.java)
startActivity(intent)
Intent의 첫 번째 인자는 context, 두 번째 인자는 클래스 파일 입니다.
startActivity()로 타겟인 액티비티로 넘어갈 수 있습니다.
암시적 인텐트
암시적 인텐트는 어떠한 액션에 따라 시작하는 액티비티 또는 실행할 작업을 선언할 수 있습니다.
작업은 보기, 수정하기, 보내기, 가져오기 등 여러 동작이 있습니다.
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://www.example.com"))
startActivity(intent)
- ACTION_VIEW : data를 보는 작업
- ACTION_SEND : data를 보내는 작업
- ACTION_DIAL : data에 통화 보내기
앞서 언급한 데이터는 Uri형태로 ACTION_VIEW 작업에선 데이터가 웹사이트, ACTION_DIAL 작업에서는 데이터가 전화 번호여야 합니다. 마찬가지로 ACTION_SEND는 text데이터 입니다.
인텐트에 데이터 추가
명시적 인텐트, 암시적 인텐트 모두 타겟 액티비에 데이터를 넘겨줄 수 있습니다.
값을 넘길 때에는 putExtra()를 사용합니다.
val intent = Intent(this, SecondActivity::class.java)
intent.putExtra("message", "Hello from the first activity!")
startActivity(intent)
데이터를 받을 때에는 getExtra()로 받을 수 있습니다.
val message = intent.getStringExtra("message")
'IDE > Android Studio' 카테고리의 다른 글
[AndroidStudio] Unable to match the desired swap behavior 에러 해결하기 (0) | 2023.10.18 |
---|---|
[AndroidStudio][FireBase] SHA-1 디지털 지문 발급받기 / zsh: permission denied: ./gradlew 해결 (1) | 2023.10.16 |
[AndroidStudio][Kotlin] Retrofit, 레트로핏으로 api 사용하기 (0) | 2023.08.16 |
[AndroidStudio][Kotlin] WebView로 웹 페이지 안드로이드 앱으로 빌드하기 (0) | 2023.08.15 |
[AndroidStudio][Kotlin] 웹 뷰 에러 net::ERROR_CACHE_MISS, (0) | 2023.08.13 |