2011-07-13 26 views
15

Tôi đang cố gắng sử dụng số nhiều trong dự án Android mới nhất của mình (SDK9). Nó luôn luôn kết thúc trong một ResourceNotFoundException. Tuy nhiên, tài nguyên là có - chắc chắn:Sử dụng số nhiều kết thúc bằng Tài nguyênNotFoundException

Dưới đây là một phần của strings.xml tôi:

<plurals name="count_files"> 
    <item quantity="one">%d file</item> 
    <item quantity="other">%d files</item> 
    <item quantity="zero">%d files</item> 
</plurals> 

<plurals name="count_folders"> 
    <item quantity="one">%d folder</item> 
    <item quantity="other">%d folders</item> 
    <item quantity="zero">%d folders</item> 
</plurals> 

Và đây là một phần đó là sử dụng nó:

textView.setText(
    getResources().getQuantityString(R.plurals.count_folders, countfolders, countfolders) 
    + ", " 
    + getResources().getQuantityString(R.plurals.count_files, countfiles, countfiles)); 

Dưới đây là những ngoại lệ:

android.content.res.Resources$NotFoundException: Plural resource ID #0x7f050001 quantity=0 item=other

Tôi phải duy trì tối đa 15 khác biệt Vì vậy, tôi cần bản địa hóa văn bản và số nhiều.

Bất kỳ ý tưởng nào có vấn đề với mã của tôi?

Rất cám ơn trước.

+0

Bạn muốn nói gì với liên kết này? Tôi không thấy bất kỳ sự khác biệt nào giữa mã của tôi và được tìm thấy trên trang web này. Tôi gặp lỗi ... –

+0

Tôi đang sử dụng cùng một cấu hình này ngay bây giờ và nó hoạt động. Bạn có chắc chắn bạn đang đặt trong thư mục "giá trị" mặc định của mình không? –

+0

Mã XML được hiển thị ở trên là một phần của chuỗi strings.xml của tôi trong thư mục res/values. Tài liệu Android nói rõ rằng đây là nơi thông thường nhưng không bắt buộc: "Bộ sưu tập số nhiều là một tài nguyên đơn giản được tham chiếu bằng giá trị được cung cấp trong thuộc tính name (không phải tên của tệp XML). có thể kết hợp các tài nguyên số nhiều với các tài nguyên đơn giản khác trong một tệp XML, dưới một phần tử ". Đầu scatching, không biết có gì sai với mã của tôi ... –

Trả lời

1

Android thực hiện số nhiều theo cách sao cho bạn cần xem xét từng bản dịch để yêu cầu mọi mục số nhiều một cách nhất quán. Ví dụ: nếu bạn khai báo số nhiều cho 'không' trong 'es' và bạn cũng có tệp 'fr', bạn sẽ cần xác định số nhiều 'zero' trong tệp 'fr'.

+2

Ví dụ khác dẫn đến lỗi tương tự: quên số lượng "khác" – HannahMitt