4

我有一个带占位符的字符串,例如

<string name="str_1">Hello %s</string>

我想在 xml 布局中使用它作为 android:text="@string/str_1"。有没有办法在 xml 布局中使用它来填充占位符?提前致谢。我已经知道 java/kotlin 中的 String.format(str,str...) 但我想在没有数据绑定的 xml 布局中使用它。

4

2 回答 2

4

你可以使用这样的东西。将您的字符串写入您的 (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);

这不是一个好的答案,但它可能会帮助您获得一些开始的想法。

谢谢。

于 2019-04-15T07:08:23.530 回答
3

无法直接在 XML 中格式化字符串。在您的代码中,您可以同时使用String.formatcontext.getString()来获取和格式化您的字符串。

如果您只想在 XML 中显示某些内容而不在最终构建中包含它(仅在编译时包含它),您还可以使用tools:如下命名空间:

<TextView 
...

    tools:text="Hello, this is a test"

/>

这只会出现在布局编辑器中,不会在 APK 中产生任何影响。它也可以用于其他领域,例如tools:visiblity.

于 2019-04-10T10:58:06.530 回答