हमारा सुझाव है कि एक डेस्टिनेशन से दूसरे डेस्टिनेशन पर जाने के लिए, Safe Args का इस्तेमाल करें Gradle प्लग इन. यह प्लगिन, ऐसे ऑब्जेक्ट और बिल्डर क्लास जनरेट करता है जिन्हें चालू करने की अनुमति होती है एक से दूसरे डेस्टिनेशन के बीच टाइप-सुरक्षित नेविगेशन की सुविधा. Safe Args का इस्तेमाल इनके लिए करें नेविगेट करना और डेस्टिनेशन के बीच डेटा भेजना.
Safe Args चालू करें
अपने प्रोजेक्ट में Safe Args जोड़ने के लिए, सबसे ऊपर के लेवल की build.gradle
फ़ाइल में यह classpath
शामिल करें:
buildscript { repositories { google() } dependencies { def nav_version = "2.8.6" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
buildscript { repositories { google() } dependencies { val nav_version = "2.8.6" classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") } }
आपको उपलब्ध दो प्लग इन में से किसी एक को भी लागू करना होगा.
Java या Java और Kotlin, दोनों मॉड्यूल के लिए सही Java भाषा कोड जनरेट करने के लिए, अपने ऐप्लिकेशन या मॉड्यूल की build.gradle
फ़ाइल में यह लाइन जोड़ें:
plugins { id 'androidx.navigation.safeargs' }
plugins { id("androidx.navigation.safeargs") }
इसके अलावा, सिर्फ़ Kotlin मॉड्यूल के लिए सही Kotlin कोड जनरेट करने के लिए, ये जोड़ें:
plugins { id 'androidx.navigation.safeargs.kotlin' }
plugins { id("androidx.navigation.safeargs.kotlin") }
AndroidX पर माइग्रेट करने के मुताबिक, आपकी gradle.properties
फ़ाइल में android.useAndroidX=true
होना चाहिए.
जनरेट किया गया कोड
Safe Args को चालू करने के बाद, आपके जनरेट किए गए कोड में आपकी तय की गई हर कार्रवाई और हर ईमेल से जुड़ी क्लास और डेस्टिनेशन पर पहुंचें.
Safe Args हर उस डेस्टिनेशन के लिए एक क्लास जनरेट करता है जहां से कोई कार्रवाई शुरू होती है. कॉन्टेंट बनाने
जनरेट किए गए क्लास के नाम में "निर्देश" जोड़े जाते हैं मूल डेस्टिनेशन क्लास में
नाम. उदाहरण के लिए, अगर मूल डेस्टिनेशन का नाम दिया गया है
SpecifyAmountFragment
, जनरेट की गई क्लास को नाम दिया गया
SpecifyAmountFragmentDirections
.
जनरेट की गई क्लास में
मूल गंतव्य. यह तरीका, तय किए गए कार्रवाई पैरामीटर को इस तरह लेता है:
आर्ग्युमेंट और एक NavDirections
ऑब्जेक्ट दिखाता है, जिसे सीधे पास किया जा सकता है
navigate()
तक.
Safe Args का उदाहरण
उदाहरण के लिए, एक ऐसा नेविगेशन ग्राफ़ देखें जिसमें दो विकल्पों को जोड़ने वाली सिर्फ़ एक कार्रवाई हो
गंतव्य, SpecifyAmountFragment
और ConfirmationFragment
. कॉन्टेंट बनाने
ConfirmationFragment
, एक float
पैरामीटर लेता है, जिसे आपने हिस्से के तौर पर उपलब्ध कराया है
उस कार्रवाई के बारे में बताएं.
Safe Args, एक बार में SpecifyAmountFragmentDirections
क्लास जनरेट करता है
तरीका, actionSpecifyAmountFragmentToConfirmationFragment()
, और एक इनर
क्लास का नाम ActionSpecifyAmountFragmentToConfirmationFragment
है. इनर द
क्लास NavDirections
से ली जाती है और उससे जुड़े कार्रवाई आईडी को सेव करती है और
float
पैरामीटर. इसके बाद, लौटाया गया NavDirections
ऑब्जेक्ट पास किया जा सकता है
सीधे navigate()
पर सेट करें, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
override fun onClick(v: View) {
val amount: Float = ...
val action =
SpecifyAmountFragmentDirections
.actionSpecifyAmountFragmentToConfirmationFragment(amount)
v.findNavController().navigate(action)
}
@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
शामिल करें:
buildscript { repositories { google() } dependencies { def nav_version = "2.8.6" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
buildscript { repositories { google() } dependencies { val nav_version = "2.8.6" classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") } }
आपको उपलब्ध दो प्लग इन में से किसी एक को भी लागू करना होगा.
Java या Java और Kotlin, दोनों मॉड्यूल के लिए सही Java भाषा कोड जनरेट करने के लिए, अपने ऐप्लिकेशन या मॉड्यूल की build.gradle
फ़ाइल में यह लाइन जोड़ें:
plugins { id 'androidx.navigation.safeargs' }
plugins { id("androidx.navigation.safeargs") }
इसके अलावा, सिर्फ़ Kotlin मॉड्यूल के लिए सही Kotlin कोड जनरेट करने के लिए, ये जोड़ें:
plugins { id 'androidx.navigation.safeargs.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()
पर सेट करें, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
override fun onClick(view: View) {
val action =
SpecifyAmountFragmentDirections
.actionSpecifyAmountFragmentToConfirmationFragment()
view.findNavController().navigate(action)
}
@Override
public void onClick(View view) {
NavDirections action =
SpecifyAmountFragmentDirections
.actionSpecifyAmountFragmentToConfirmationFragment();
Navigation.findNavController(view).navigate(action);
}
Safe Args का इस्तेमाल करके डेटा को एक डेस्टिनेशन से दूसरे डेस्टिनेशन पर भेजने के बारे में ज़्यादा जानने के लिए, देखें टाइप सेफ़्टी के साथ डेटा भेजने के लिए, Safe Args का इस्तेमाल इसके बीच में डेटा पास करें डेस्टिनेशन.