Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


La definición plural se ignora para la cantidad cero

Utilizo plurales para compilar una cadena de cantidad para una aplicación de Android. Sigo exactamente lo que se puede encontrar en los tutoriales:

res.getQuantityString( R.plurals.number_of_comments, commentsCount, commentsCount); 

Aquí está la definición de los plurales:

  • Eliminación de fila en SQLite en Android
  • ¿Cómo mantener una conexión TCP establecida indefinidamente?
  • Problemas incluyendo Apache HttpComponents en el proyecto de Android Gradle
  • Cambiar el primer plano y el color de fondo del fragmento Autocompletar de lugar
  • Desactivación de la selección de texto en PhoneGap
  • Comparar imágenes SIFT / SURF detalles en archivos .yml OpenCV?
  •  <?xml version="1.0" encoding="utf-8"?> <resources> <plurals name="number_of_comments"> <item quantity="zero">No comments</item> <item quantity="one">One comment</item> <item quantity="other">%d comments</item> </plurals> </resources> 

    Lo bastante interesante, la cadena de salida es extraña a lo que he definido:

     commentsCount = 0 => "0 comments" commentsCount = 1 => "One comment" commentsCount = 2 => "2 comments" 

    Supongo que esto es porque el estado de documentos When the language requires special treatment of the number 0 (as in Arabic). Para zero cantidad zero . ¿Hay alguna manera de forzar mi definición?

  • Fragmentos parece ser excesivo? ¿No es posible una arquitectura MVC?
  • ListView Item Selected Estado no funciona
  • Cómo obtener el uso actual de memoria en android?
  • ¿Cómo puedo cargar una página web dentro de la webview del teléfono?
  • Lectura de Android El accesorio USB lanza ENODEV IOException
  • Android: ListView no recibe OnItemClick para textview con enlaces que se pueden hacer clic
  • 2 Solutions collect form web for “La definición plural se ignora para la cantidad cero”

    Según la documentación :

    La selección de la cadena que se va a utilizar se basa únicamente en la necesidad gramatical. En inglés, una cadena para cero será ignorada incluso si la cantidad es 0, porque 0 no es gramaticalmente diferente de 2, o cualquier otro número excepto 1 ("cero libros", "un libro", "dos libros" y pronto).

    Si todavía desea utilizar una cadena personalizada para cero, puede cargar una cadena diferente cuando la cantidad es cero:

     if (commentsCount == 0) str = res.getString(R.string.number_of_comments_zero); else str = res.getQuantityString(R.plurals.number_of_comments, commentsCount, commentsCount); 

    Plural es unicode forma. Todo el valor plural aquí . En inglés, plural para cero como 2, 3,4 por lo que debe si else este valor para utilizar otros cadena para esto.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.