在 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.formatcontext.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);

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

谢谢。