해당 항목에 대해 "형식화 된"속성을 설정할 필요가 없습니다. 수량 문자열을 사용하는 경우에만 세 가지 가능성이 있습니다 :
- 리소스 문자열이 일반 텍스트 및 리소스 문자열이 하나의 매개 변수 (가능성이 가장 높은 수량)를 포함
- 매개 변수를 포함하지 않는;
%d
또는 원하는 형식을 사용하십시오.
- 리소스 문자열에 여러 매개 변수가 포함되어 있습니다. 추가
Object... formatArgs
파라미터 만 ressource ID 및 수량, 다른 하나 모든 파라미터가 명시 일례 getQuantityString
방법으로서 %1$d
위해, 자신의 위치에 액세스 할 수있는, 두 과부하가있다.
케이스 1의 경우 getQuantityString(@PluralsRes int id, int quantity)
메서드를 사용할 수 있습니다.
다른 모든 경우에는, i. 이자형. 매개 변수가있는 경우 getQuantityString(@PluralsRes int id, int quantity, Object... formatArgs)
과부하가 필요합니다. 참고 : 모두 매개 변수가 매개 변수 배열에 있어야합니다. 즉, 리소스 문자열에 수량이 표시되면 수량 변수는 두 번으로 전달됩니다.
이러한 자원은 그래서 경우
<resources>
<plurals name="test0">
<item quantity="one">Test ok</item>
<item quantity="other">Tests ok</item>
</plurals>
<plurals name="test1">
<item quantity="one">%d test ok</item>
<item quantity="other">%d tests ok</item>
</plurals>
<plurals name="test2">
<item quantity="one">%2$s: %1$d test ok</item>
<item quantity="other">%2$s: %1$d tests ok</item>
</plurals>
<plurals name="test3">
<item quantity="one">%3$s: %1$d test out of %2$d ok</item>
<item quantity="other">%3$s: %1$d tests out of %2$d ok</item>
</plurals>
</resources>
는 getQuantityString
에 appropiate 호출은 다음과 같습니다
int success = 1;
int total = 10;
String group = "Group name";
getResources().getQuantityString(R.plurals.test0, success)
// Test ok
getResources().getQuantityString(R.plurals.test1, success, success)
// 1 test ok
getResources().getQuantityString(R.plurals.test2, success, success, group)
// Group name: 1 test ok
getResources().getQuantityString(R.plurals.test3, success, success, total, group)
// Group name: 1 test out of 10 ok
success = 5;
getResources().getQuantityString(R.plurals.test0, success)
// Tests ok
getResources().getQuantityString(R.plurals.test1, success, success)
// 5 tests ok
getResources().getQuantityString(R.plurals.test2, success, success, group)
// Group name: 5 tests ok
getResources().getQuantityString(R.plurals.test3, success, success, total, group)
// Group name: 5 tests out of 10 ok