Safe Args

हमारा सुझाव है कि एक डेस्टिनेशन से दूसरे डेस्टिनेशन पर जाने के लिए, 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 का इस्तेमाल इसके बीच में डेटा पास करें डेस्टिनेशन.