AndroidManifest中的meta-data读取不到

问题背景

昨天有同事出现很奇怪的问题,就是AndroidManifest中的meta-data值读取不到了,简直就像灵异事件,以前都没有问题,他把问题给我描述之后我觉得不可能。于是去看了一下他的代码。一眼就找出了病根。他的代码如下。

问题分析

注意看上面的两段代码,android:value=”123412334”,纯数字组成的字符串作为meta-data的value。而获取meta-data的时候是通过getString读取的,这就是问题的根源了。因为Android在处理meta-data的时候如果value可以转化为数值类型,那么它将会被转型。在代码中就无法通过getString获取到这个值了。

问题解决

要解决这个问题非常简单,可以讲value采用非数值类型,或者将数值类型转换为带0X的16进制表示。也可以在代码中使用getInt这样的方法来取值。



  copyright@黑月神话,转载请注明出处:vjson.com

发表评论