Safe Args

Hedefler arasında gezinmek için önerilen yol Güvenli Bağımsız Değişkenleri kullanmaktır Gradle eklentisi. Bu eklenti, aşağıdakileri mümkün kılan nesne ve derleyici sınıfları oluşturur hedefler arasında tür güvenli gezinme. Şunlar için Güvenli Bağımsız Değişkenler Kullanın: Hedefler arasında veri iletme ve gezinme.

Güvenli Bağımsız Değişkenleri etkinleştir

Güvenli Bağımsız Değişkenler eklemek için üst düzey build.gradle dosyanıza aşağıdaki classpath öğesini ekleyin:

Eski

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")
    }
}

Mevcut iki eklentiden birini de uygulamanız gerekir.

Java veya karma Java ve Kotlin modüllerine uygun Java dil kodu oluşturmak için bu satırı uygulamanızın veya modülünüzün build.gradle dosyasına ekleyin:

Eski

plugins {
  id 'androidx.navigation.safeargs'
}

Kotlin

plugins {
    id("androidx.navigation.safeargs")
}

Alternatif olarak, Kotlin'e özel modüllere uygun Kotlin kodu oluşturmak için şunu ekleyin:

Eski

plugins {
  id 'androidx.navigation.safeargs.kotlin'
}

Kotlin

plugins {
    id("androidx.navigation.safeargs.kotlin")
}

android.useAndroidX=true gradle.properties dosya AndroidX'e taşıma.

Oluşturulan kod

Güvenli Bağımsız Değişkenleri etkinleştirdikten sonra oluşturduğunuz kod, ve gönderen her işleme karşılık gelen sınıfların yanı sıra, ve alma hedefi.

Güvenli Bağımsız Değişkenler, bir işlemin başlatıldığı her hedef için bir sınıf oluşturur. İlgili içeriği oluşturmak için kullanılan oluşturulan sınıf adı, "Yol Tarifi"ni ekler başlangıç noktası sınıfına dokunun. Örneğin, kaynak hedefin adı SpecifyAmountFragment, oluşturulan sınıfın adı SpecifyAmountFragmentDirections.

Oluşturulan sınıf, varış noktasıdır. Bu yöntemde, tanımlanan işlem parametreleri bağımsız değişkenleri belirtir ve doğrudan iletebileceğiniz bir NavDirections nesnesi döndürür Hedef navigate().

Güvenli Bağımsız Değişkenler örneği

Örneğin, iki etkinliği birbirine bağlayan tek bir eylem içeren bir gezinme grafiğini ele alalım. varış noktaları, SpecifyAmountFragment ve ConfirmationFragment. İlgili içeriği oluşturmak için kullanılan ConfirmationFragment, parça olarak sağladığınız tek bir float parametresini alır eyleme dönüşebilir.

Safe Args, SpecifyAmountFragmentDirections sınıf için tek bir yöntem, actionSpecifyAmountFragmentToConfirmationFragment() ve iç ActionSpecifyAmountFragmentToConfirmationFragment adlı sınıf. İç sınıfı, NavDirections parametresinden türetilir ve ilişkili işlem kimliğini ve float parametresinden yararlanın. Döndürülen NavDirections nesnesi daha sonra iletilebilir aşağıdaki örnekte gösterildiği gibi doğrudan navigate() öğesine bağlayın:

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);
}

Güvenli Bağımsız değişkenler ile hedefler arasında veri iletme hakkında daha fazla bilgi için bkz. Güvenlik türü ile veri aktarmak için Güvenli Bağımsız Değişkenleri kullanın.

Güvenli Bağımsız Değişkenleri kullanarak tür güvenliğini sağlayın

Güvenli Bağımsız Değişkenleri kullanarak hedefler arasında gezinin Gradle eklentisi. Bu eklenti, müşterilerinize çok çeşitli özellikler ve Hedefler arasında tür güvenli gezinmeyi ve bağımsız değişken geçişini etkinleştirin.

Güvenli Bağımsız Değişkenler eklemek için üst düzey build.gradle dosyanıza aşağıdaki classpath öğesini ekleyin:

Eski

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")
    }
}

Mevcut iki eklentiden birini de uygulamanız gerekir.

Java veya karma Java ve Kotlin modüllerine uygun Java dil kodu oluşturmak için bu satırı uygulamanızın veya modülünüzün build.gradle dosyasına ekleyin:

Eski

plugins {
  id 'androidx.navigation.safeargs'
}

Kotlin

plugins {
    id("androidx.navigation.safeargs")
}

Alternatif olarak, Kotlin'e özel modüllere uygun Kotlin kodu oluşturmak için şunu ekleyin:

Eski

plugins {
  id 'androidx.navigation.safeargs.kotlin'
}

Kotlin

plugins {
    id("androidx.navigation.safeargs.kotlin")
}

android.useAndroidX=true gradle.properties dosya AndroidX'e taşıma.

Güvenli Bağımsız Değişkenleri etkinleştirdikten sonra eklenti, farklı yöntemler kullanabilirsiniz. Her işlem için Güvenli Bağımsız Değişkenler ayrıca Hedef olan her kaynak hedef için bir sınıf oluşturur en önemli husustur. Oluşturulan sınıf adı kaynak hedef sınıf adı ve "Yol tarifi" kelimesi. Örneğin, Hedef SpecifyAmountFragment olarak adlandırılırsa oluşturulan sınıf SpecifyAmountFragmentDirections adlı. Oluşturulan sınıf, yöntemini çağırın. Bu yöntem Bağımsız değişken olarak tanımlanmış tüm işlem parametreleri ve bir NavDirections nesnesi döndürür bunları navigate() öğesine iletebilirsiniz.

Örneğin, elimizde tek bir işlem içeren bir gezinme grafiğimiz olduğunu varsayalım SpecifyAmountFragment kaynak hedefini bir alıcıya bağlar hedef, ConfirmationFragment.

Safe Args, SpecifyAmountFragmentDirections sınıf için tek bir actionSpecifyAmountFragmentToConfirmationFragment() yöntemi, NavDirections nesne. Döndürülen NavDirections nesnesi, daha sonra iletilebilir aşağıdaki örnekte gösterildiği gibi doğrudan navigate() öğesine bağlayın:

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);
}

Güvenli Bağımsız değişkenler ile hedefler arasında veri iletme hakkında daha fazla bilgi için bkz. Verileri şu tarihler arasında iletme bölümünde, verileri tür güvenliğiyle aktarmak için Güvenli Bağımsız Değişkenleri kullanın: hedefler.

Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.

Son güncelleme tarihi: 2024-09-05 UTC.