안드로이드 개발 정보
(글 수 1,067)
ListPreference의 Summary에 %등의 문자가 들어가 있으면 아래와 같은 Exception발생. [Honeycomb 이상 버전과 CM7]
java.util.UnknownFormatConversionException: Conversion:
at java.util.Formatter$FormatSpecifierParser.unknownFormatConversionException(Formatter.java:2338)
at java.util.Formatter$FormatSpecifierParser.advance(Formatter.java:2332)
at java.util.Formatter$FormatSpecifierParser.parseConversionType(Formatter.java:2411)
at java.util.Formatter$FormatSpecifierParser.parseArgumentIndexAndFlags(Formatter.java:2382)
at java.util.Formatter$FormatSpecifierParser.parseFormatToken(Formatter.java:2315)
at java.util.Formatter.doFormat(Formatter.java:1092)
at java.util.Formatter.format(Formatter.java:1063)
at java.util.Formatter.format(Formatter.java:1032)
at java.lang.String.format(String.java:2104)
at java.lang.String.format(String.java:2078)
at android.preference.ListPreference.getSummary(ListPreference.java:152)
at android.preference.Preference.onBindView(Preference.java:500)
개발자 문서에 getSummary, setSummary는 아래와 같이 %와 formatting에 대한 설명이 적혀있지만
Sets the summary for this Preference with a CharSequence. If the summary has a
String formatting
marker in it (i.e. "%s" or "%1$s"), then the current entry value will be substituted in its place when it's retrieved.위 코드는 허니콤 부터 들어갔고, 실제로 허니콤 이하 버전에서는 위와 같이 적용되지 않아서 동작이 일치하지 않아 문제가 생김.