Я отримую шістнадцяткові значення кольору з сервера (у цій формі #xxxxxx
, наприклад, #000000
для чорного)
Як перетворити це на ціле значення?
Я намагався зробити, Integer.valueOf("0x" + passedColor.substring(1, passedColor.length()))
щоб отримати ще більш гексастичний 0x000000
результат, але це не трактується як int
тут, будь-які інші пропозиції?
Я отримую повідомлення про помилку: 08-03 21:06:24.673: ERROR/AndroidRuntime(20231): java.lang.NumberFormatException: unable to parse '0x00C8FBFE' as integer
Я використовую Android SDK для їх setBackgroundColor(int color)
функції, яка приймає - як ви вже здогадалися - ціле значення кольору.
Це ПРОТИВ цього питання: Як перетворити ціле кольорове число на шістнадцятковий рядок в Android?
valueOf
метод з двома аргументами , де ви вказуєте рядок вводу (без #, звичайно) та radix, який визначає базу.Integer.valueOf(passedColor.substring(1, passedColor.length()), 16)
Це можна зробити з будь-якою цілочисельною базою! download.oracle.com/javase/6/docs/api/java/lang/… , int)