這很奇怪,我以前用過這個(gè)功能。然而它似乎已經(jīng)停止工作,我不知道為什么。我用來Color.parseColor設(shè)置項(xiàng)目的背景顏色。這是執(zhí)行此操作的代碼:imgItemImage.setBackgroundColor(Color.parseColor(cartItem.get("picture")));我收到這個(gè)異常:java.lang.NumberFormatException:對于輸入字符串:“#837A67”和 java.lang.Long.parseLong(Long.java:579)在 android.graphics.Color.parseColor(Color.java:1386)這似乎是正確的十六進(jìn)制顏色,所以我不確定為什么它會導(dǎo)致此異常。有人有什么主意嗎?
1 回答

慕的地10843
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
正如您從 中看到的Exception
,問題在于何時(shí)Long.parseLong()
從內(nèi)部調(diào)用Color.parseColor()
。
這Exception
是由于給Long.parseLong()提供了錯(cuò)誤的輸入,這是 的額外字符#
,通常應(yīng)在Color.parseColor()
內(nèi)部調(diào)用之前將其刪除Long.parseLong()
。
您的代碼拋出的問題Exception
可以如下所示:
String str = "#837A67"; System.out.println(Long.parseLong(str, 16));
16
十六進(jìn)制的 RADIX 是 哪里。
但試試這個(gè):
String str = "837A67"; System.out.println(Long.parseLong(str, 16));
并且您將得到預(yù)期的結(jié)果。
這表明String
傳遞parseColor
是不正確的,因?yàn)楹芸赡苁怯捎?em>不同的#
字符被刪除而沒有被刪除。 Color.parseColor()
仔細(xì)檢查您傳遞給的值Color.parseColor()
并確保 之前沒有任何字符#
。
添加回答
舉報(bào)
0/150
提交
取消