2013-07-03 13 views
39

Kodumu basitleştirmek için Plurals kullanıyorum. örneğin, birden dizeleri yerine Çoğullar kullanmaXML'de kullanmak için çoğullardan bir dize mi alıyorsunuz?

<string name="cat">Cat</string> 
<string name="cats">Cats</string> 

için kullanılan, şimdi

<plurals name="cats"> 
    <item quantity="one">Cat</item> 
    <item quantity="other">Cats</item> 
</plurals> 

Ancak, benim XML başlıklar veya özetleri olarak kullanmak için dizeleri almak için kullanılan var. örneğin

android:title="@string/cats" 

bir Çoğul lehine bu dizeyi kaldırılmış olması, ben XML benim dize nasıl alınacağını şimdi emin değilim. Ben

android:title="@plurals/cats" 

ile naif bir girişimde yaptım ama bu sadece bana @1234567890 yerine Cats (veya Cat) verir.

XML'den bir Çoğuldan bir dize almak mümkün olup olmadığını bilen var mı?

+0

https://developer.android.com/guide/topics/resources/string-resource.html#Plurals –

+1

Çoğul fucntion, Engish çoğullarını simgelemek değildir; ancak herhangi bir dilin kurallarını desteklemek için. Fransız "0 kedi" ve Rus "21 kedi" olurdu. % D değerini dahil etmeyi unutmayın, böylece sayı çevirilerde taşınabilir; gerekirse. – Liggliluff

cevap

47

Sen koduna göre ayarlamak zorunda: Ne olduklarını dize kaynak bırakarak ve onlara bakarak çoğullar ve dize kaynakların statik yarar çalışma zamanı yararları olabilir

...setText(yourContext.getResources().getQuantityString(R.plurals.cats, catsCountVar)); 
+0

Bunun tek seçenek olmadığını umuyorum, o zamandan beri CPU zamanını harcayamayacağım çalışma zamanında birçok görüntü bulmam gerekecekti. Birkaç gün içinde hiç kimse yanıt vermiyorsa, bu cevabı esasen "XML'den mümkün değil" olarak kabul edeceğim – Duke

+2

Buradaki belge: http://developer.android.com/guide/topics/resources/string-resource.html# Çoğullar – gwa

+0

Ben bir sayımla ilgilenmiyorum (gösterme) - Ben sadece birden çok dili desteklerken kelimenin Tekil ve Çoğul formunu almak istiyorum. Görüntüleme (ID ile) bulmak pahalı olduğundan, varsayılan olarak zaten Android için yapmış olan görüntülenen dizeyi ayarlamak için listemdeki/menüde/etc'deki her görünümde bir (ikinci) geçiş yapmak istemiyorum. Görünüm (ler) ilk şişirildiğinde/oluşturulduğunda.Bir Çoğul kaynağı yerine 2 dizeyle, bu görünümlerde kodumda hiçbir şey yapmam gerekmez. (Gördüğüm kadarıyla, Plurals, minimum bakım kazanımı için performansımı bozar.) – Duke

2

senin çoğul kaynaklar.

https://developer.android.com/guide/topics/resources/string-resource.html#Plurals'dan itibaren (vurgu eklenmiştir).

<item>

bir tekil veya çoğul dizi

. Değer, başka bir dize kaynağına başvuruda bulunabilir. Bir elemanın çocuğu olmalı. Tırnak işaretleri ve tırnak işaretleri kaçmak gerekir. Dizelerinizi doğru şekilde biçimlendirmek ve biçimlendirmek hakkında bilgi için, bkz. Örnek:
<string name="cat">Cat</string> 
<string name="cats">Cats</string> 

<plurals name="cats"> 
    <item quantity="one">@string/cat</item> 
    <item quantity="other">@string/cats</item> 
</plurals> 

Şimdi XML dosyalarında android:title="@string/cats" kullanabilir ve aynı zamanda çalışma zamanında

getQuantityString(R.plurals.cats, numberOfCats) 

kullanın.

İlgili konular