Android

Android Dize Kaynaklarında Değişkenler Nasıl Bildirilir?

2 dize kaynağınız olduğunu varsayalım app_name ve about_text aşağıda, 2 çoğaltılmış sabit kodlanmış dizeniz var.

<resources>
    <string name="app_name">My App Name</string>
    <string name="about_text">My App Name</string>
</resources>

Başka Bir Dize Kaynaklarına Başvurun

Yinelenen sabit kodlanmış dizelerden kurtulmak için yapabileceğiniz şey, app_name itibaren about_text.

<resources>
    <string name="app_name">My App Name</string>
    <string name="about_text">@string/app_name</string>
</resources>

Ama ya daha karmaşıksanız about_text aşağıdaki gibi mi?

<resources>
    <string name="app_name">My App Name</string>
    <string name="about_text">My App Name is an awesome app!</string>
</resources>

Dize Biçimini Kullan

değiştirebilirsiniz about_text dizenin çalışma zamanında oluşturulmasına izin vermek için dize biçimine.

<resources>
    <string name="app_name">My App Name</string>
    <string name="about_text">%s is an awesome app!</string>
</resources>

Kodda (örneğin aktivite sınıfınızda), app_name sicim.

val aboutText = resources.getString(
    R.string.about_text,
    resources.getString(R.string.app_name))

Eh, kullanmak için başka daha iyi bir çözüm var DOKTORA! Koddan dize değişkenini iletmeniz gerekmez.

DOCTYPE kaynaklarını kullan ENTITY

DOCTYPE kaynakları ENTITY bildirimi bir değişken gibi. Kullanarak başka bir dize kaynaklarından başvurabilirsiniz. &<entity_name>; sözdizimi.

<!DOCTYPE resources [
    <!ENTITY app_name "My App Name">
    <!ENTITY another_name "Test 1 2 3">
    ]>

<resources>
    <string name="app_name">&app_name;</string>
    <string name="about_text">&app_name; is an awesome app!</string>
</resources>

P/S: Kullanmaktan daha iyi bir yol varsa DOKTORAlütfen bana bildirin.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Başa dön tuşu