วิธีที่แนะนำในการไปยังส่วนต่างๆ ระหว่างปลายทางคือการใช้ปลั๊กอิน Gradle ของ Safe Args ปลั๊กอินนี้จะสร้างคลาสออบเจ็กต์และคลาส Builder ที่ช่วยให้ การไปยังส่วนต่างๆ ระหว่างปลายทางเป็นแบบปลอดภัยต่อประเภท ใช้ Safe Args สำหรับ การไปยังส่วนต่างๆ และการส่งข้อมูลระหว่างปลายทาง
เปิดใช้ Safe Args
如需将 Safe Args
添加到您的项目,请在顶层 build.gradle 文件中包含以下 classpath:
Groovy
buildscript { repositories { google() } dependencies { def nav_version = "2.10.2" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
Kotlin
buildscript { repositories { google() } dependencies { val nav_version = "2.10.2" classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") } }
您还必须应用以下两个可用插件之一。
如需生成适用于 Java 模块或 Java 和 Kotlin 混合模块的 Java 语言代码,请将以下行添加到应用或模块的 build.gradle 文件中:
Groovy
plugins { id 'androidx.navigation.safeargs' }
Kotlin
plugins { id("androidx.navigation.safeargs") }
此外,如需生成仅适用于 Kotlin 模块的 Kotlin 语言代码,请添加以下行:
Groovy
plugins { id 'androidx.navigation.safeargs.kotlin' }
Kotlin
plugins { id("androidx.navigation.safeargs.kotlin") }
根据迁移到 AndroidX 文档,您的 gradle.properties 文件中必须具有 android.useAndroidX=true。
โค้ดที่สร้างขึ้น
หลังจากเปิดใช้ Safe Args แล้ว โค้ดที่สร้างขึ้นจะมีคลาสและเมธอดสำหรับ การดำเนินการแต่ละอย่างที่คุณกำหนดไว้ รวมถึงคลาสที่สอดคล้องกับปลายทางในการส่ง และรับแต่ละรายการ
Safe Args จะสร้างคลาสสำหรับปลายทางแต่ละแห่งที่การดำเนินการเริ่มต้น ชื่อคลาสที่สร้างขึ้นจะเพิ่ม "Directions" ลงในชื่อคลาสปลายทางต้นทาง เช่น หากตั้งชื่อปลายทางต้นทางว่า
SpecifyAmountFragment ระบบจะตั้งชื่อคลาสที่สร้างขึ้นว่า
SpecifyAmountFragmentDirections
คลาสที่สร้างขึ้นจะมีเมธอดแบบคงที่สำหรับการดำเนินการแต่ละอย่างที่กำหนดไว้ในปลายทางต้นทาง เมธอดนี้จะใช้พารามิเตอร์การกระทําที่กําหนดเป็นอาร์กิวเมนต์ และแสดงผลออบเจ็กต์ NavDirections ที่คุณส่งไปยัง navigate() ได้โดยตรง
ตัวอย่าง Safe Args
ตัวอย่างเช่น ลองพิจารณากราฟการนำทางที่มีการดำเนินการเดียวที่เชื่อมต่อปลายทาง 2 แห่ง ได้แก่ SpecifyAmountFragment และ ConfirmationFragment
ConfirmationFragment รับfloatพารามิเตอร์เดียวที่คุณระบุเป็นส่วนหนึ่ง
ของการดำเนินการ
Safe Args จะสร้างคลาส SpecifyAmountFragmentDirections ที่มีเมธอดเดียวคือ actionSpecifyAmountFragmentToConfirmationFragment() และคลาสภายในที่ชื่อ ActionSpecifyAmountFragmentToConfirmationFragment คลาสภายในได้มาจาก NavDirections และจัดเก็บรหัสการดำเนินการที่เชื่อมโยงและพารามิเตอร์ float จากนั้นส่งออบเจ็กต์ NavDirections ที่ส่งคืนไปยัง navigate() ได้โดยตรง ดังตัวอย่างต่อไปนี้
Kotlin
override fun onClick(v: View) {
val amount: Float = ...
val action =
SpecifyAmountFragmentDirections
.actionSpecifyAmountFragmentToConfirmationFragment(amount)
v.findNavController().navigate(action)
}
Java
@Override
public void onClick(View view) {
float amount = ...;
action =
SpecifyAmountFragmentDirections
.actionSpecifyAmountFragmentToConfirmationFragment(amount);
Navigation.findNavController(view).navigate(action);
}
ดูข้อมูลเพิ่มเติมเกี่ยวกับการส่งข้อมูลระหว่างปลายทางด้วย Safe Args ได้ที่ ใช้ Safe Args เพื่อส่งข้อมูลที่มีความปลอดภัยในการกำหนดประเภท
ตรวจสอบความปลอดภัยในการกำหนดประเภทโดยใช้ Safe Args
ไปยังจุดหมายต่างๆ โดยใช้ปลั๊กอิน Gradle ของ Safe Args ปลั๊กอินนี้จะสร้างคลาสออบเจ็กต์และคลาส Builder อย่างง่ายที่ เปิดใช้การนำทางและการส่งอาร์กิวเมนต์ระหว่างปลายทางที่ปลอดภัยต่อประเภท
如需将 Safe Args
添加到您的项目,请在顶层 build.gradle 文件中包含以下 classpath:
Groovy
buildscript { repositories { google() } dependencies { def nav_version = "2.10.2" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
Kotlin
buildscript { repositories { google() } dependencies { val nav_version = "2.10.2" classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") } }
您还必须应用以下两个可用插件之一。
如需生成适用于 Java 模块或 Java 和 Kotlin 混合模块的 Java 语言代码,请将以下行添加到应用或模块的 build.gradle 文件中:
Groovy
plugins { id 'androidx.navigation.safeargs' }
Kotlin
plugins { id("androidx.navigation.safeargs") }
此外,如需生成仅适用于 Kotlin 模块的 Kotlin 语言代码,请添加以下行:
Groovy
plugins { id 'androidx.navigation.safeargs.kotlin' }
Kotlin
plugins { id("androidx.navigation.safeargs.kotlin") }
根据迁移到 AndroidX 文档,您的 gradle.properties 文件中必须具有 android.useAndroidX=true。
หลังจากเปิดใช้ Safe Args แล้ว ปลั๊กอินจะสร้างโค้ดที่มีคลาสและ
เมธอดสำหรับการดำเนินการแต่ละอย่างที่คุณกำหนด สำหรับแต่ละการดำเนินการ Safe Args จะสร้างคลาสสำหรับปลายทางต้นทางแต่ละรายการด้วย ซึ่งก็คือปลายทางที่การดำเนินการเริ่มต้น ชื่อชั้นเรียนที่สร้างขึ้นจะมาจากการรวม
ชื่อชั้นเรียนปลายทางต้นทางและคำว่า "เส้นทาง" เช่น หากปลายทางชื่อ SpecifyAmountFragment คลาสที่สร้างขึ้นจะมีชื่อ SpecifyAmountFragmentDirections คลาสที่สร้างขึ้นจะมีเมธอดแบบคงที่สำหรับแต่ละการดำเนินการที่กำหนดไว้ในปลายทางต้นทาง เมธอดนี้จะใช้พารามิเตอร์การดำเนินการที่กำหนดเป็นอาร์กิวเมนต์และแสดงผลออบเจ็กต์ NavDirections
ที่คุณส่งไปยัง navigate() ได้
ตัวอย่างเช่น สมมติว่าเรามีกราฟการนำทางที่มีการดำเนินการเดียวที่เชื่อมต่อปลายทางต้นทาง SpecifyAmountFragment กับปลายทางที่รับ ConfirmationFragment
Safe Args จะสร้างคลาส SpecifyAmountFragmentDirections ที่มีเมธอดเดียว actionSpecifyAmountFragmentToConfirmationFragment() ซึ่งแสดงผลออบเจ็กต์ NavDirections จากนั้นจะส่งออบเจ็กต์ NavDirections ที่ส่งคืนนี้ไปยัง navigate() ได้โดยตรง ดังที่แสดงในตัวอย่างต่อไปนี้
Kotlin
override fun onClick(view: View) { val action = SpecifyAmountFragmentDirections .actionSpecifyAmountFragmentToConfirmationFragment() view.findNavController().navigate(action) }
Java
@Override public void onClick(View view) { NavDirections action = SpecifyAmountFragmentDirections .actionSpecifyAmountFragmentToConfirmationFragment(); Navigation.findNavController(view).navigate(action); }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการส่งข้อมูลระหว่างปลายทางด้วย Safe Args ได้ที่ใช้ Safe Args เพื่อส่งข้อมูลที่มีความปลอดภัยในการกำหนดประเภทในส่งข้อมูลระหว่างปลายทาง