strings.xml의 매개 변수가 가능합니까? [복제]
이 질문에는 이미 답변이 있습니다.
- String.xml을 사용하는 동적 문자열? 답변 9 개
내 안드로이드 앱에서 국제화로 문자열을 구현하려고합니다. 문법과 문장이 다른 언어로 작성되는 방식에 문제가 있습니다.
예를 들면 다음과 같습니다.
"5 분 전"-영어
"vor 5 Minuten"-독일어
strings.xml에서 다음과 같은 작업을 수행 할 수 있습니까?
<string name="timeFormat">{0} minutes ago</string>
그리고 같은 마술
getString(R.id.timeFormat, dynamicTimeValue)
이 동작은 단어 순서가 다른 다른 문제도 해결합니다.
예, 문자열을 표준 String.format()
방식으로 포맷하십시오 .
메소드 Context.getString(int, Object...)
및 Android 또는 Java Formatter
문서를 참조하십시오 .
귀하의 경우 문자열 정의는 다음과 같습니다.
<string name="timeFormat">%1$d minutes ago</string>
XML에 두 개의 변수가 필요한 경우 다음을 사용할 수 있습니다.
%1$d text... %2$d
또는 %1$s text... %2$s
문자열 변수의 경우.
예:
strings.xml
<string name="notyet">Website %1$s isn\'t yet available, I\'m working on it, please wait %2$s more days</string>
activity.java
String site = "mywebsite";
String days = "11";
//Toast example
String notyet = getString(R.string.notyet, site, days);
Toast.makeText(getApplicationContext(), notyet, Toast.LENGTH_LONG).show();
String.format (String, Object ...)을 사용하여 문자열을 형식화해야하는 경우 문자열 인수에 형식 인수를 넣어서 수행 할 수 있습니다. 예를 들어 다음 리소스를 사용하십시오.
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
이 예에서 형식 문자열에는 두 개의 인수가 있습니다. % 1 $ s는 문자열이고 % 2 $ d는 10 진수입니다. 다음과 같이 애플리케이션의 인수로 문자열을 형식화 할 수 있습니다.
Resources res = getResources(); String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
이 특정 응용 프로그램에는 표준 라이브러리 함수 인이 android.text.format.DateUtils.getRelativeTimeSpanString()
있습니다.
그것을 사용하는 많은 방법이 있으며 문자열 형식에 대한이 문서를 볼 것을 권장합니다.
http://developer.android.com/intl/pt-br/reference/java/util/Formatter.html
그러나 변수가 하나만 필요한 경우 % [type] 을 사용해야 합니다. 여기서 [type] 은 임의의 플래그 일 수 있습니다 (위 사이트 내부의 플래그 유형 참조). (예 : "내 이름은 % s "이거나 내 이름을 대문자로 설정하려면이 "내 이름은 % S "입니다.)
<string name="welcome_messages">Hello, %1$S! You have %2$d new message(s) and your quote is %3$.2f%%.</string>
Hello, ANDROID! You have 1 new message(s) and your quote is 80,50%.
참고 URL : https://stackoverflow.com/questions/2397613/are-parameters-in-strings-xml-possible
'IT' 카테고리의 다른 글
f (i = -1, i = -1) 동작이 정의되지 않은 이유는 무엇입니까? (0) | 2020.03.28 |
---|---|
.NET NewtonSoft JSON은 다른 속성 이름으로 맵을 역 직렬화합니다. (0) | 2020.03.28 |
변환 : 권한이없는`aaaa` @ error / constitute.c / ReadImage / 453 (0) | 2020.03.28 |
CSS : even 및 : odd 의사 클래스를 목록 항목과 함께 사용 (0) | 2020.03.28 |
사용자가 Android 활동을 종료 할 것인지 확인하는 대화 상자를 표시하는 방법은 무엇입니까? (0) | 2020.03.28 |