วิธีที่แนะนำในการไปยังปลายทางต่างๆ คือการใช้ Safe Args ปลั๊กอิน Gradle ปลั๊กอินนี้จะสร้างคลาสออบเจ็กต์และเครื่องมือสร้างที่ช่วยให้ การนำทางอย่างปลอดภัยระหว่างปลายทางต่างๆ ใช้ Args ที่ปลอดภัยสำหรับ การนำทางและการส่งข้อมูลระหว่างปลายทาง
เปิดใช้ Safe Args
วิธีเพิ่ม อาร์กิวเมนต์ที่ปลอดภัย
ลงในโปรเจ็กต์ของคุณ ให้ใส่ classpath
ต่อไปนี้ในไฟล์ build.gradle
ระดับบนสุด
ดึงดูด
buildscript { repositories { google() } dependencies { def nav_version = "2.8.0" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
Kotlin
buildscript { repositories { google() } dependencies { val nav_version = "2.8.0" classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") } }
นอกจากนี้ คุณต้องใช้ปลั๊กอิน 1 ใน 2 รายการที่มีอยู่ด้วย
หากต้องการสร้างโค้ดภาษา Java ที่เหมาะสำหรับโมดูล Java และ Kotlin แบบผสม ให้เพิ่ม
บรรทัดนี้ไปยังไฟล์ build.gradle
ของแอปหรือโมดูลของคุณ
ดึงดูด
plugins { id 'androidx.navigation.safeargs' }
Kotlin
plugins { id("androidx.navigation.safeargs") }
หากต้องการสร้างโค้ด Kotlin ที่เหมาะสำหรับโมดูล Kotlin เท่านั้น ให้เพิ่มรายการต่อไปนี้
ดึงดูด
plugins { id 'androidx.navigation.safeargs.kotlin' }
Kotlin
plugins { id("androidx.navigation.safeargs.kotlin") }
คุณต้องมี android.useAndroidX=true
ใน
gradle.properties
ไฟล์ตาม
การย้ายข้อมูลไปยัง AndroidX
โค้ดที่สร้างขึ้น
หลังจากเปิดใช้ 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 ปลั๊กอินนี้จะสร้างคลาสออบเจ็กต์และเครื่องมือสร้างที่ เปิดใช้การนำทางที่ปลอดภัยตามประเภทและการส่งอาร์กิวเมนต์ระหว่างปลายทาง
วิธีเพิ่ม อาร์กิวเมนต์ที่ปลอดภัย
ลงในโปรเจ็กต์ของคุณ ให้ใส่ classpath
ต่อไปนี้ในไฟล์ build.gradle
ระดับบนสุด
ดึงดูด
buildscript { repositories { google() } dependencies { def nav_version = "2.8.0" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
Kotlin
buildscript { repositories { google() } dependencies { val nav_version = "2.8.0" classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") } }
นอกจากนี้ คุณต้องใช้ปลั๊กอิน 1 ใน 2 รายการที่มีอยู่ด้วย
หากต้องการสร้างโค้ดภาษา Java ที่เหมาะสำหรับโมดูล Java และ Kotlin แบบผสม ให้เพิ่ม
บรรทัดนี้ไปยังไฟล์ build.gradle
ของแอปหรือโมดูลของคุณ
ดึงดูด
plugins { id 'androidx.navigation.safeargs' }
Kotlin
plugins { id("androidx.navigation.safeargs") }
หากต้องการสร้างโค้ด Kotlin ที่เหมาะสำหรับโมดูล Kotlin เท่านั้น ให้เพิ่มรายการต่อไปนี้
ดึงดูด
plugins { id 'androidx.navigation.safeargs.kotlin' }
Kotlin
plugins { id("androidx.navigation.safeargs.kotlin") }
คุณต้องมี android.useAndroidX=true
ใน
gradle.properties
ไฟล์ตาม
การย้ายข้อมูลไปยัง AndroidX
หลังจากที่คุณเปิดใช้ 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 เพื่อส่งข้อมูลที่มีประเภทความปลอดภัยในส่งข้อมูลระหว่าง ปลายทาง