हमारा सुझाव है कि एक डेस्टिनेशन से दूसरे डेस्टिनेशन पर जाने के लिए, Safe Args का इस्तेमाल करें Gradle प्लग इन. यह प्लगिन, ऐसे ऑब्जेक्ट और बिल्डर क्लास जनरेट करता है जिन्हें चालू करने की अनुमति होती है एक से दूसरे डेस्टिनेशन के बीच टाइप-सुरक्षित नेविगेशन की सुविधा. Safe Args का इस्तेमाल इनके लिए करें नेविगेट करना और डेस्टिनेशन के बीच डेटा भेजना.
Safe Args चालू करें
Safe Args जोड़ने के लिए
अपने प्रोजेक्ट की टॉप लेवल build.gradle
फ़ाइल में, यहां दिया गया classpath
शामिल करें:
ग्रूवी
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") } }
आपको दो उपलब्ध प्लगिन में से किसी एक का इस्तेमाल भी करना होगा.
Java या Java और Kotlin मॉड्यूल के लिए सही Java लैंग्वेज कोड जनरेट करने के लिए, जोड़ें
इस पंक्ति को आपके ऐप्लिकेशन या मॉड्यूल की 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()
तक.
Safe 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
शामिल करें:
ग्रूवी
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") } }
आपको दो उपलब्ध प्लगिन में से किसी एक का इस्तेमाल भी करना होगा.
Java या Java और Kotlin मॉड्यूल के लिए सही Java लैंग्वेज कोड जनरेट करने के लिए, जोड़ें
इस पंक्ति को आपके ऐप्लिकेशन या मॉड्यूल की 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 का इस्तेमाल इसके बीच में डेटा पास करें डेस्टिनेशन.