亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解析顏色不再適用于十六進制值

解析顏色不再適用于十六進制值

收到一只叮咚 2023-08-16 16:32:53
這很奇怪,我以前用過這個功能。然而它似乎已經停止工作,我不知道為什么。我用來Color.parseColor設置項目的背景顏色。這是執行此操作的代碼:imgItemImage.setBackgroundColor(Color.parseColor(cartItem.get("picture")));我收到這個異常:java.lang.NumberFormatException:對于輸入字符串:“#837A67”和 java.lang.Long.parseLong(Long.java:579)在 android.graphics.Color.parseColor(Color.java:1386)這似乎是正確的十六進制顏色,所以我不確定為什么它會導致此異常。有人有什么主意嗎?
查看完整描述

1 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

正如您從 中看到的Exception,問題在于何時Long.parseLong()從內部調用Color.parseColor()。

Exception是由于給Long.parseLong()提供了錯誤的輸入,這是 的額外字符#,通常應在Color.parseColor()內部調用之前將其刪除Long.parseLong()。

您的代碼拋出的問題Exception可以如下所示:

String str = "#837A67";
System.out.println(Long.parseLong(str, 16));

16十六進制的 RADIX 是 哪里。

但試試這個:

String str = "837A67";
System.out.println(Long.parseLong(str, 16));

并且您將得到預期的結果。

這表明String傳遞parseColor是不正確的,因為很可能是由于不同的#字符被刪除而沒有被刪除。 Color.parseColor()

仔細檢查您傳遞給的值Color.parseColor()并確保 之前沒有任何字符#。


查看完整回答
反對 回復 2023-08-16
  • 1 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號