解析Android中尺寸值的正确方法是什么?例如,我想从这些字符串中的任何一个获得值为20的int
:20px
,20mm
,20dp
。解析Android中尺寸的值
尝试Integer.parseInt()
没有让我走得很远,因为它在非数字字符上引发异常。
解析Android中尺寸值的正确方法是什么?例如,我想从这些字符串中的任何一个获得值为20的int
:20px
,20mm
,20dp
。解析Android中尺寸的值
尝试Integer.parseInt()
没有让我走得很远,因为它在非数字字符上引发异常。
如果单位总是存在的,只是提到了一个,你肯定你永远不会需要它 - 简单地分析一个子str.substring(0, str.length() - 3)
我会建议使用自定义的类来解析并保持包括单位在内的价值 - 您可能需要某个时间。
如果从AttributeSet
开始,可以通过Context
获取TypedArray
,最终使用getDimension
或相关函数。
如果你只是想传递一个字符串,parseInt函数没有抛出异常试试这个:
Integer.parseInt(someString.replaceFirst("[^0-9].*" , ""));
正则表达式截断开始不是一个数字的第一个字符的字符串。这意味着字符串必须以数字开头。
我想知道是否这样的东西已经内置到Android SDK中。似乎它会是常用的东西。 – 2011-04-05 05:11:35
我相信在解析UI布局XML时会有这样的东西在Android中使用。尽管我没有发现它是公开的,但是对于这里提到的相当小的问题,编写一个类来分析和保存解析值是一个几分钟的问题。 :O) – mbanzon 2011-04-05 05:19:25