2014-06-17 2 views
6

Attualmente sto sviluppando un'applicazione per Android che utilizza pesantemente le stringhe di risorse Android per l'internazionalizzazione. Ogni nome identificatore di stringa ha un formato specifico comePlurali di stringhe Android con nomi di identificatori separati da punti

<string name="example.string.name.identifier">Example</string> 

nel codice che posso fare riferimento la stringa con:

R.string.example_string_name_identifier 

e questo funziona perfettamente bene per le stringhe normali. Ma appena ho utilizzare questo formato per i nomi di identificatore plurali, ottengo il seguente errore:

error: Error retrieving parent for item: No resource found that matches the given name 'example.plural.name' 

La definizione plurale stringa è la seguente:

<plurals name="example.plural.name.identifier"> 
    <item quantity="one">Example</item> 
    <item quantity="other">Examples</item> 
    <item quantity="zero">Examples</item> 
</plurals> 

e nel codice riferisco al plurale con:

// _amount is a function parameter 
String exampleString = getResources().getQuantityString(R.plurals.example_plural_name_identifier, _amount, _amount); 

Purtroppo l'azienda sto lavorando in, vuole davvero che io bastone con questo modello. C'è qualche possibilità di usare questo modello con plurali a stringa o dobbiamo rinominare l'identificatore?

+0

Posta come si chiama stringa plurale nel codice – silwar

+0

@silwar ha aggiornato la mia domanda. – blackfizz

+0

Penso che sia meglio cambiare il nome del modello. Errore va da Android-apt-compiler, quindi penso che non è possibile risolvere il problema ... –

risposta

1

Come si recupera il plurale?

Esempio:

int number=2; 
Resources res = getResources(); 
String quantityString = res.getQuantityString(R.plurals.example.plural.name.identifier, number, number); 

Beh, sembra che è possibile utilizzare solo '_' di nome. Qualsiasi punto nel suo nome mi dà lo stesso problema accanto al punto come primo carattere del nome.

+0

aggiornato la mia domanda. E sì, lo recupero proprio così. – blackfizz

+0

ha aggiornato la mia risposta. – Nexowski