인수 전달하기
목적지에 데이터를 보내 보세요.
인수 전달하기은(는) CoddyKit의 무료 Android Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Android Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
화면 간 데이터 전달하기
대상 화면에 표시할 항목의 식별자처럼 데이터가 필요한 경우가 많습니다. Navigation Compose에서는 URL과 비슷하게 인수를 경로에 직접 인코딩합니다.
자리 표시자가 있는 경로
중괄호를 사용하여 경로에 자리 표시자를 선언합니다. 여기서 {id}는 id라는 이름의 인수입니다.
composable("details/{id}") { backStackEntry ->
// read id here
}인수 유형 선언하기
arguments와 navArgument를 사용하여 탐색기에 인수의 유형을 알려줍니다. 그러면 값의 유효성 검사와 변환이 자동으로 처리됩니다.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { /* ... */ }NavType
NavType은 인수의 데이터 유형을 선언합니다. 예를 들어 IntType, StringType, BoolType 등이 있습니다. 탐색기는 그에 맞게 경로 값을 파싱합니다.
인수 읽기
대상 화면의 람다에는 backStackEntry가 제공됩니다. backStackEntry.arguments에서 인수를 읽으세요.
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { backStackEntry ->
val id = backStackEntry.arguments?.getInt("id") ?: 0
DetailsScreen(id = id)
}값과 함께 탐색하기
화면을 열려면 자리 표시자를 실제 값으로 대체하여 경로 문자열을 만듭니다.
navController.navigate("details/42")안전하게 경로 만들기
문자열 템플릿을 사용하여 값을 삽입하세요. 경로의 구성 요소가 선언한 경로와 정확히 일치하도록 유지해야 합니다.
val itemId = 42
navController.navigate("details/$itemId")선택적 인수
선택적 인수는 ?name=value 형식의 쿼리 문자열 방식과 defaultValue를 사용합니다. 탐색할 때 생략할 수 있습니다.
composable(
"search?query={query}",
arguments = listOf(navArgument("query") {
defaultValue = ""
})
) { /* ... */ }문자열 인수는 주의해서 사용하기
문자열 인수는 URL에서 안전하게 사용할 수 있어야 합니다. 긴 텍스트나 슬래시를 경로로 전달하지 말고, 이런 경우에는 식별자를 키로 사용하는 공유 ViewModel이나 저장소를 사용하세요.
객체가 아니라 식별자 전달하기
권장 방법은 항목의 식별자처럼 작은 식별자를 경로로 전달한 다음 대상 화면에서 전체 객체를 조회하는 것입니다. 큰 객체를 경로에 직렬화하지 마세요.
전체 연결하기
목록 화면에서 세부 정보 화면으로 이동하면서 선택한 식별자를 전달합니다.
composable("list") {
ListScreen(onItemClick = { id ->
navController.navigate("details/$id")
})
}
composable(
"details/{id}",
arguments = listOf(navArgument("id") { type = NavType.IntType })
) { entry ->
val id = entry.arguments?.getInt("id") ?: 0
DetailsScreen(id = id)
}빠른 확인
경로에서 id라는 이름의 필수 정수 인수를 어떻게 선언하나요?
복습
인수 전달:
- 경로에
{placeholder}를 넣습니다. navArgument와NavType으로 유형을 선언합니다.backStackEntry.arguments에서 읽습니다.- 값을 대입하여 탐색하고, 큰 객체가 아니라 작은 식별자를 전달합니다.
자주 묻는 질문
“인수 전달하기” 강의는 무료인가요?
네 — “인수 전달하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Android Academy 강의 전체를 잠금 해제할 수 있습니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“인수 전달하기”에서 뭘 배우나요?
목적지에 데이터를 보내 보세요. 브라우저에서 직접 실행하는 실습 코드로 Android Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Android Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Android Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“인수 전달하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Android Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Android Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- NavHost 설정하기
- 화면 사이를 탐색하기
- 인수 전달하기
- 하단 탐색