2012년 1월 31일 화요일

[안드로이드] String.xml 사용하기2 - Format 이용하기

스트링을 이용하다 보면 가끔 C에서의 printf가 너무 그립다.
물론 java도 그에 해당되는 녀석이 있다.
(Formatter는 요기 참고~)
http://developer.android.com/reference/java/util/Formatter.html#format(java.lang.String, java.lang.Object...)

이러한 포맷을 string.xml에도 지정 할 수 있는데,
UI의 고정된 메시지에 숫자만 바뀌거나 어떤 한 값만 바뀌는 경우 유용하게 사용 할 수 있다.

<?xml version="1.0" encoding="utf-8"?>

<resources>
    <string name="like_message">%1$d명의 사용자가 좋아 합니다.</string>
</resources>

1명의 사용자가 좋아 합니다.
27명의 사용자가 좋아 합니다.
같이 몇명인가의 값만 바뀐다면,
    String strLike = getString(R.string.like_message, 27);
이런식으로 뒤에 해당 값을 대입 시켜 주면 된다.


    <string name="like_message">%1$d명의 사용자가 좋아 합니다.</string>


를 좀더 자세히 살펴 보면 %1$d 가 있는데 여기서,
%1은 첫번째 항목을 뜻하고,
$d는 익숙한 정수형값임을 뜻한다.


따라서 
    홍길동27명의 사용자가 좋아 합니다.
와 같이 홍길동 과 27 이 변경 되는 값이라면,
    <string name="like_message">%1$s외 %2$d명의 사용자가 좋아 합니다.</string>
처럼 하면 된다.


java파일 에서는 


    String strHello = getString(R.string.like_message, "홍길동", 27);


처럼 사용 하면 된다.

댓글 없음:

댓글 쓰기