我的目標是顯示「1星」「2.5星」「3星」等文本。Android顯示整數和浮點數的複數
是刪除.0
浮法價值像1.0, 2.0 etc.
但對於.5
值顯示浮點值2.5 3.5 etc.
這是可能使用Android plurals
?
我用這種方式,但不起作用。 plurals.xml
<plurals name="hotel_card_rating_text">
<item quantity="zero">@string/text_zero</item>
<item quantity="one">@string/text_one</item>
<item quantity="two">@string/text_two</item>
<item quantity="few">@string/text_few</item>
<item quantity="many">@string/text_many</item>
<item quantity="other">@string/text_other</item>
</plurals>
的strings.xml
<resources>
<string name="text_zero">%.1f stars</string>
<string name="text_one">1 star</string>
<string name="text_two">%.1f stars</string>
<string name="text_few">%.1f stars</string>
<string name="text_many">%.1f stars</string>
<string name="text_other">%.1f stars</string>
</resources>
測試代碼
DecimalFormat format = new DecimalFormat();
float rating = getRating();
getStarText().setText(getContext().getResources().getQuantityString(R.plurals.hotel_card_rating_text, (int) rating, format.format(rating)));
}
「零」量不存在問題 - 這只是對數量如何工作以及它們的目的是什麼的常見誤解。例如,「零」,「一」和「兩」不直接映射到確切的數字0,1和2,因此它們不被所有語言使用(即使數字顯然可以被所有語言使用語言)。 – LoPoBo