Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Pluralization not working, need help

I've been attempting to utilize the plurals resource with Android but have not had any luck.

Here is my resource file for my plurals:

<?xml version="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>

...and then here is the code I am using when I attempt to extract the quantity string from my resources:

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

...but the text in the TextView remains to be %d degrees and %d meters.

Does anyone know what is happening? I've debugged the code and the res.getQuantityString(...) call is returning a String whose value is %d degrees or %d meters. Though when the quantity happens to be 1 it does correctly evalute to 1 degree or 1 meter.

Thanks in advance for any help!

Regards, celestialorb.

like image 509
celestialorb Avatar asked Sep 15 '10 05:09

celestialorb


1 Answers

Same problem here! I guess it is just a flaw in the documentation. The "pure" getQuantitiyString(int, int) method does just get a text resource, without any formatting. As superfell stated: just use the getQuantityString(int, int, Object...) method and hand over your integer value twice.

I'd hoped this worked the same way you did, but it simply doesn't!!

PS: maybe check an answer as the correct one? ;-)

like image 69
Zordid Avatar answered Oct 21 '22 22:10

Zordid