Tôi đang sử dụng chuỗi số nhiều do android-sdk cung cấp. Tôi đã sử dụng đoạn mã sau để tạo ra một chuỗi số nhiều:Số nhiều không hoạt động như dự định trong android
<plurals name="valuestr">
<item quantity="zero">Choose a value.</item>
<item quantity="one">%d unit.</item>
<item quantity="other">%d units.</item>
</plurals>
Java Code:
textView.setText(getResources().getQuantityString(R.plurals.valuestr,0,0));
Khi tôi đang cài đặt bất kỳ giá trị khác hơn là '0', điều này đang làm việc tốt nhưng khi tôi đang thiết " 0 'nó đang hiển thị ' 0 đơn vị '..
Vui lòng trợ giúp!
Cập nhật
Trong khi tìm kiếm nhiều trên internet tôi đã xem qua một workaround trong đó sử dụng java.text.MessageFormat
lớp:
<resources>
<string name="item_shop">{0,choice,0#No items|1#One item|1<{0} items}</string>
</resources>
Sau đó, từ các mã tất cả các bạn phải làm là như sau:
String fmt = resources.getText(R.string.item_shop);
textView.setText(MessageFormat.format(fmt, amount));
Bạn có thể đọc thêm về các chuỗi định dạng trong javadocs for MessageFormat
Tôi có thể nói nó có thể là bởi vì bạn cung cấp cho nó một định dạngArgs (0 cuối cùng), có thể lọc mục số nhiều để chỉ giữ lại những mục yêu cầu định dạng args – njzk2
có thể trùng lặp của [getQuantityString trả về chuỗi sai với giá trị 0] (http://stackoverflow.com/questions/13493011/getquantitystring-returns-wrong-string-với-0-value) – rds