我有一个带占位符的字符串,例如
<string name="str_1">Hello %s</string>
我想在 xml 布局中使用它作为 android:text="@string/str_1"。有没有办法在 xml 布局中使用它来填充占位符?提前致谢。我已经知道 java/kotlin 中的 String.format(str,str...) 但我想在没有数据绑定的 xml 布局中使用它。
我有一个带占位符的字符串,例如
<string name="str_1">Hello %s</string>
我想在 xml 布局中使用它作为 android:text="@string/str_1"。有没有办法在 xml 布局中使用它来填充占位符?提前致谢。我已经知道 java/kotlin 中的 String.format(str,str...) 但我想在没有数据绑定的 xml 布局中使用它。
你可以使用这样的东西。将您的字符串写入您的 (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);
这不是一个好的答案,但它可能会帮助您获得一些开始的想法。
谢谢。
无法直接在 XML 中格式化字符串。在您的代码中,您可以同时使用String.format
和context.getString()
来获取和格式化您的字符串。
如果您只想在 XML 中显示某些内容而不在最终构建中包含它(仅在编译时包含它),您还可以使用tools:
如下命名空间:
<TextView
...
tools:text="Hello, this is a test"
/>
这只会出现在布局编辑器中,不会在 APK 中产生任何影响。它也可以用于其他领域,例如tools:visiblity
.