วิธีที่แนะนำในการไปยังปลายทางต่างๆ คือการใช้ Safe Args ปลั๊กอิน Gradle ปลั๊กอินนี้จะสร้างคลาสออบเจ็กต์และเครื่องมือสร้างที่ช่วยให้ การนำทางอย่างปลอดภัยระหว่างปลายทางต่างๆ ใช้ Args ที่ปลอดภัยสำหรับ การนำทางและการส่งข้อมูลระหว่างปลายทาง
เปิดใช้ Safe Args
如需将 Safe Args 添加到您的项目,请在顶层 build.gradle
文件中包含以下 classpath
:
Groovy
buildscript { repositories { google() } dependencies { def nav_version = "2.9.0" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
Kotlin
buildscript { repositories { google() } dependencies { val nav_version = "2.9.0" 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()
ตัวอย่าง Args ที่ปลอดภัย
ตัวอย่างเช่น ลองพิจารณากราฟการนำทางที่มีการกระทำเดียวที่เชื่อมโยงถึงสอง
ปลายทาง 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
นำทางระหว่างปลายทางโดยใช้ Safe Args ปลั๊กอิน Gradle ปลั๊กอินนี้จะสร้างคลาสออบเจ็กต์และเครื่องมือสร้างที่ เปิดใช้การนำทางที่ปลอดภัยตามประเภทและการส่งอาร์กิวเมนต์ระหว่างปลายทาง
如需将 Safe Args 添加到您的项目,请在顶层 build.gradle
文件中包含以下 classpath
:
Groovy
buildscript { repositories { google() } dependencies { def nav_version = "2.9.0" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
Kotlin
buildscript { repositories { google() } dependencies { val nav_version = "2.9.0" 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 เพื่อส่งข้อมูลที่มีประเภทความปลอดภัยในส่งข้อมูลระหว่าง ปลายทาง