在 XML 布局 android 中使用带占位符的字符串
Use Strings with placeholder in XML layout android
我有一个带占位符的字符串,例如
<string name="str_1">Hello %s</string>
我想在 xml 布局中使用它作为 android:text="@string/str_1"。 有没有办法在xml布局中使用这个来填充占位符?
提前致谢。我已经知道 java/kotlin 中的 String.format(str,str...) 但我想在没有数据绑定的 xml 布局中使用它。
无法直接在 XML 中格式化字符串。在您的代码中,您可以同时使用 String.format
和 context.getString()
来获取和格式化您的字符串。
如果你只想在 XML 中显示一些东西而不是在最终构建中显示它(只在编译时有它),你也可以使用 tools:
命名空间,如下所示:
<TextView
...
tools:text="Hello, this is a test"
/>
这只会出现在布局编辑器中,不会对 APK 产生任何影响。它也可以用于其他字段,例如 tools:visiblity
.
你可以使用类似这样的东西。
在您的 (strings.xml) 中写入您的字符串,并在其中声明一个字符串变量 (%1$s)。对于十进制,我们使用 (%2$d).
<string name="my_string">My string name is %1$s</string>
在 android 代码 (yourFile.java) 中,在您需要的地方使用此字符串。
String.format(getResources().getString(R.string.my_string), stringName);
这不是一个好的答案,但它可能会帮助您获得一些想法。
谢谢。
我有一个带占位符的字符串,例如
<string name="str_1">Hello %s</string>
我想在 xml 布局中使用它作为 android:text="@string/str_1"。 有没有办法在xml布局中使用这个来填充占位符? 提前致谢。我已经知道 java/kotlin 中的 String.format(str,str...) 但我想在没有数据绑定的 xml 布局中使用它。
无法直接在 XML 中格式化字符串。在您的代码中,您可以同时使用 String.format
和 context.getString()
来获取和格式化您的字符串。
如果你只想在 XML 中显示一些东西而不是在最终构建中显示它(只在编译时有它),你也可以使用 tools:
命名空间,如下所示:
<TextView
...
tools:text="Hello, this is a test"
/>
这只会出现在布局编辑器中,不会对 APK 产生任何影响。它也可以用于其他字段,例如 tools:visiblity
.
你可以使用类似这样的东西。 在您的 (strings.xml) 中写入您的字符串,并在其中声明一个字符串变量 (%1$s)。对于十进制,我们使用 (%2$d).
<string name="my_string">My string name is %1$s</string>
在 android 代码 (yourFile.java) 中,在您需要的地方使用此字符串。
String.format(getResources().getString(R.string.my_string), stringName);
这不是一个好的答案,但它可能会帮助您获得一些想法。
谢谢。