Coc*_*ess 128 android android-layout android-xml
我在通常的strings.xml资源文件中定义了字符串,如下所示:
<string name="hello_world"> HELLO</string>
Run Code Online (Sandbox Code Playgroud)
是否可以定义格式字符串,如下所示
result_str = String.format("Amount: %.2f for %d days ", var1, var2);
Run Code Online (Sandbox Code Playgroud)
在strings.xml资源文件中?
我试图逃避特殊字符,但它不起作用.
Loc*_*Guy 234
您不需要formatted="false"在XML中使用.您只需要使用完全限定的字符串格式标记 - %[POSITION]$[TYPE]([POSITION]属性位置和[TYPE]变量类型),而不是短版本,例如%s或%d.
Run Code Online (Sandbox Code Playgroud)<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>在此示例中,格式字符串有两个参数:
%1$s是字符串,%2$d是十进制整数.您可以使用应用程序中的参数格式化字符串,如下所示:Run Code Online (Sandbox Code Playgroud)Resources res = getResources(); String text = res.getString(R.string.welcome_messages, username, mailCount);
She*_*tib 101
您应该添加formatted="false"到您的字符串资源
这是一个例子
在你的strings.xml:
<string name="all" formatted="false">Amount: %.2f%n for %d days</string>
Run Code Online (Sandbox Code Playgroud)
在你的代码中:
yourTextView.setText(String.format(getString(R.string.all), 3.12, 2));
Run Code Online (Sandbox Code Playgroud)
Tim*_*ähr 12
内部文件strings.xml定义一个String资源,如下所示:
<string name="string_to_format">Amount: %1$f for %2$d days%3$s</string>
Run Code Online (Sandbox Code Playgroud)
在代码内部(假设它继承自Context),只需执行以下操作:
String formattedString = getString(R.string.string_to_format, floatVar, decimalVar, stringVar);
Run Code Online (Sandbox Code Playgroud)
(与LocalPCGuy或Giovanny Farto M.的答案相比,不需要String.format方法.)
引用来自Android文档:
如果您需要使用来格式化字符串
String.format(String, Object...),则可以通过将format参数放在字符串资源中来实现。例如,使用以下资源:Run Code Online (Sandbox Code Playgroud)<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>在此的示例格式字符串有两个参数:
%1$s是一个字符串,%2$d是一个十进制数字。您可以使用应用程序中的参数来格式化字符串,如下所示:Run Code Online (Sandbox Code Playgroud)Resources res = getResources(); String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
| 归档时间: |
|
| 查看次数: |
114495 次 |
| 最近记录: |