如何在Android中的xml中为字符串资源指定空值?

Pol*_*Bug 12 java xml android

在我的values.xml中,我有一些字符串资源.但有时,出于特定原因,我希望该字符串资源具有空值.

如何指定该字符串具有null值?

values.xml:

<string name="default_item_0">Some String</string>
<string name="default_item_1">@null</string>
Run Code Online (Sandbox Code Playgroud)

Java代码:

String item0 = context.getString(R.string.default_item_0);
String item1 = context.getString(R.string.default_item_1);
Run Code Online (Sandbox Code Playgroud)

预期:

String item0 = "Some String";
String item1 = null;
Run Code Online (Sandbox Code Playgroud)

实际:

String item0 = "Some String";
String item1 = "@0";
Run Code Online (Sandbox Code Playgroud)

我尝试了@null值,但它返回了一个字符串@0.

是否有可能null在xml中有一个值?

Int*_*iya 0

你可以尝试使用matches

测试此字符串是否与给定的正则表达式匹配。仅当正则表达式与整个输入字符串匹配时,此方法才返回 true。

if(getResources().getString(R.string.default_item_1).matches("@null")) 
{ 
     // Your logic
}
else
    {
     // Your logic
    }
Run Code Online (Sandbox Code Playgroud)

如果需要使用 String.format(String, Object...) 格式化字符串,则可以通过将格式参数放入字符串资源中来实现。

使用 String.xml 的动态字符串?

  • 我认为这是一个解决方案。从逻辑上讲,我必须记住特定的字符串资源是否可以具有空值,这将是一个麻烦。我希望有一种通过 xml 直接分配 null 的方法。 (2认同)