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
Projenize Safe Args eklemek için üst düzey build.gradle dosyanıza aşağıdaki classpath öğesini ekleyin:
Groovy
buildscript { repositories { google() } dependencies { def nav_version = "2.9.6" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
Kotlin
buildscript { repositories { google() } dependencies { val nav_version = "2.9.6" classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") } }
Ayrıca, 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:
Groovy
plugins { id 'androidx.navigation.safeargs' }
Kotlin
plugins { id("androidx.navigation.safeargs") }
Alternatif olarak, yalnızca Kotlin modüllerine uygun Kotlin kodu oluşturmak için şunları ekleyin:
Groovy
plugins { id 'androidx.navigation.safeargs.kotlin' }
Kotlin
plugins { id("androidx.navigation.safeargs.kotlin") }
AndroidX'e Taşıma bölümünde belirtildiği gibi, gradle.properties dosyanızda android.useAndroidX=true olmalıdır.
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.
Projenize Safe Args eklemek için üst düzey build.gradle dosyanıza aşağıdaki classpath öğesini ekleyin:
Groovy
buildscript { repositories { google() } dependencies { def nav_version = "2.9.6" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" } }
Kotlin
buildscript { repositories { google() } dependencies { val nav_version = "2.9.6" classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version") } }
Ayrıca, 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:
Groovy
plugins { id 'androidx.navigation.safeargs' }
Kotlin
plugins { id("androidx.navigation.safeargs") }
Alternatif olarak, yalnızca Kotlin modüllerine uygun Kotlin kodu oluşturmak için şunları ekleyin:
Groovy
plugins { id 'androidx.navigation.safeargs.kotlin' }
Kotlin
plugins { id("androidx.navigation.safeargs.kotlin") }
AndroidX'e Taşıma bölümünde belirtildiği gibi, gradle.properties dosyanızda android.useAndroidX=true olmalıdır.
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.