我正在尝试将颜色从String
解析为int
。它在大多数情况下都有效,但是在某些特定情况下会抛出NumerFormatException
。
无法解析的颜色示例:
我用来解析颜色的代码:
try {
dialogView.findViewById(R.id.test_view).setBackgroundColor(Color.parseColor("#" + shop.getBackgroundColor()));
} catch (Exception e) {
Log.e("test", e.getMessage());
}
我得到的例外情况:
来自调试器:
这很奇怪,因为调试器显示String
的计数等于8。在不同情况下,它显示计数等于7,并且解析正常。任何想法在这里有什么问题以及如何解决?
我发现从String
方法返回的getBackgroundColor()
像'\uFEFF' 65279
一样在开头还具有其他不可见字符。我将其删除,现在可以使用了。谢谢
答案 0 :(得分:0)
shop类中的getBackgroundColor()方法是什么类型?似乎是长整数,而631b4b不是十进制长整数,而是十六进制。您可以使其返回String。
答案 1 :(得分:0)
尝试一下...
shop.getBackgroundColor()
可能会带有空格。只需使用trim()
将其删除。这样。
shop.getBackgroundColor().trim()
try {
dialogView.findViewById(R.id.test_view).setBackgroundColor(Color.parseColor("#" + shop.getBackgroundColor().trim()));
} catch (Exception e) {
Log.e("test", e.getMessage());
}
快乐的编码...