我在manifest.xml中指定了一个元数据,如下所示:
<meta-data android:value="5555555555" android:name="foo"></meta-data>
当像这样访问元数据时:
ActivityInfo ai = act.getPackageManager().getActivityInfo(componentName, PackageManager.GET_META_DATA);
Object value = (Object)ai.metaData.get(key);
该值被解释为 int - 更重要的是 - 被错误地解释(1260588259)。
由于类型是由构建系统自动确定的(布尔值、整数、浮点数和字符串),我想知道是否有任何方法可以强制数据类型为字符串。
我尝试在末尾添加一个空格(“5555555555”),但随后该值被解释为 5.5555553E9 浮点数! )。
我也尝试过使用getString
代替get
,但随后返回 null。
有任何想法吗? TIA。
在数字前面放置一个转义空格似乎有效:
<meta-data android:name="foo" android:value="\ 1234567890"/>
转义的空格不会出现在返回的值中get()
.
老实说,我不太清楚这是如何运作的。
如果你想有记录的东西 https://developer.android.com/guide/topics/manifest/meta-data-element.html因此更可靠的是,您始终可以将字符串值作为资源并引用它:
<meta-data android:name="foo" android:resource="@string/mynumber"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)