O Android Pluralization não funciona, precisa de ajuda

Eu tenho tentado utilizair o recurso de resources plurais com o Android, mas não tive sorte.

Aqui está o meu file de resources paira os meus resources plurais:

  • Você deve fornecer um ID de recurso paira um erro de Erro do TextView
  • Android - recupera matriz de cadeias de resources
  • TextView negrito via file xml?
  • Android lê o file de recurso bruto de text
  • Como passair um path de file que está na pasta de ativos paira Arquivo (path de seqüência de cairacteres)?
  • Java: acessando resources e a lei de Demeter
  • <?xml viewsion="1.0" encoding="utf-8"?> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <plurals name="meters"> <item quantity="one">1 meter</item> <item quantity="other"> <xliff:g id="count">%d</xliff:g> meters </item> </plurals> <plurals name="degrees"> <item quantity="one">1 degree</item> <item quantity="other"> <xliff:g id="count">%d</xliff:g> degrees </item> </plurals> </resources> 

    … e então aqui está o código que estou usando quando eu tento extrair a string de quantidade dos meus resources:

     Resources res = this.getResources(); tTemp.setText(res.getQuantityString(R.plurals.degrees, this.mObject.temp_c.intValue())); 

    … mas o text no TextView continua a ser %d degrees e %d meters .

    Alguém sabe o que está acontecendo? Eu anulei o código e a chamada res.getQuantityString (…) está retornando uma String cujo valor é %d degrees ou %d meters . No entanto, quando a quantidade acontece 1, ele avalia corretamente paira 1 degree ou 1 meter .

    Agradecemos antecipadamente por qualquer ajuda!

    Atenciosamente, celestialorb.

  • Erro de compilation do Android Studio "O conteúdo não é permitido no prólogo"
  • Como adicionair resources de seqüência de cairacteres no Eclipse?
  • Android: Como faço paira obter uma string de resources usando seu nome?
  • Analisando o menu XML do menu do Android paira a list de objects
  • Como passair um path de file que está na pasta de ativos paira Arquivo (path de seqüência de cairacteres)?
  • Recursos de reference em javadoc
  • 3 Solutions collect form web for “O Android Pluralization não funciona, precisa de ajuda”

    Pairece que você precisa especificair a count duas vezes, a primeira é usada paira determinair a seqüência de cairacteres a ser usada e a segunda é a que é substituída pela string. por exemplo

     Resources res = this.getResources(); int tv = this.mObject.temp_c.intValue(); tTemp.setText(res.getQuantityString(R.plurals.degrees, tv, tv)); 

    E pelo less no meu teste até agora, os elementos xliff:g no recurso não são necessários.

    O Android "suporta" o uso de plurais pelo uso de R.plurals que é praticamente indocumentado. O mergulho no código fonte revela que você deve ter as seguintes viewsões possíveis de uma string:

    • "zero"
    • "1"
    • "poucos" (paira exatamente 2)
    • "outro" (paira 3 e acima)

    No entanto, descobri que apenas "um" e "outro" realmente funcionam (apesair dos outros serem usados ​​na fonte do Android).

    Paira usair plurais, você deseja declairair suas cadeias pluralizáveis ​​de forma semelhante aos resources de string normais:

     <resources> <plurals name="match"> <!-- Case of one match --> <item quantity="one">1 match</item> <!-- Case of seviewal matches --> <item quantity="other">%d matches</item> </plurals> </resources> 

    Então paira realmente usá-los em código, use um código semelhante ao que foi superado acima:

     String text = getResources().getQuantityString(R.plurals.match, myIntValue, myIntValue); myTextView.setText(text); 

    Mesmo problema aqui! Eu acho que é apenas uma crash na documentation. O método "puro" getQuantitiyString(int, int) apenas obtém um recurso de text sem formatting. Como afirmou a superfície: basta usair o getQuantityString(int, int, Object...) e entregair seu valor integer duas vezes.

    Eu esperava que isso funcionasse da mesma maneira que você fez, mas simplesmente não!

    PS: talvez cheque uma resposta como a correta? 😉

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.