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.