Tôi đang cố gắng định dạng một chuỗi từ string.xml để sử dụng lại nó với một vài Giá trị. Tôi đang chạy vào một số vấn đề như String cũng nên chứa tỷ lệ phần trăm-biểu tượng được sử dụng bởi trình định dạng. Tôi đã cố gắng để thay thế các biểu tượng% vào trình bày unicode của nó nhưng điều đó không có vẻ làm việc:biểu tượng phần trăm trong strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="teststring">The new value is %1$s%</string>
<string name="teststring2">The new value is %1$s\u0025</string>
<string name="teststring3">The new value is %1$s</string>
</resources>
Java Code:
String value = "25";
String formattedString = context.getResources().getString(R.string.teststring), value);
Trong ví dụ này. teststring và teststring2 sẽ tạo ra một lỗi, trong khi teststring3 hoạt động tốt. Whats cách chính xác để đặt rằng biểu tượng% trong chuỗi xml để có được "Giá trị mới là 25%" như là chuỗi định dạng?
Cảm ơn sự giúp đỡ của bạn.
stacktrace:
FATAL EXCEPTION: main
java.util.UnknownFormatConversionException: Conversion:
at java.util.Formatter$FormatSpecifierParser.unknownFormatConversionException(Formatter.java:2304)
at java.util.Formatter$FormatSpecifierParser.advance(Formatter.java:2298)
at java.util.Formatter$FormatSpecifierParser.parseConversionType(Formatter.java:2377)
at java.util.Formatter$FormatSpecifierParser.parseArgumentIndexAndFlags(Formatter.java:2348)
at java.util.Formatter$FormatSpecifierParser.parseFormatToken(Formatter.java:2281)
at java.util.Formatter.doFormat(Formatter.java:1069)
at java.util.Formatter.format(Formatter.java:1040)
at java.util.Formatter.format(Formatter.java:1009)
at java.lang.String.format(String.java:1988)
at android.content.res.Resources.getString(Resources.java:343)
at (... and so on)
--EDIT-- Cảm ơn trợ giúp. Câu trả lời đúng là
<string name="teststring">The new value if %1$s%%</string>
format = "false" không được đặt.
i thay đổi nội dung câu trả lời thử nó –