Ricevo valori di colore esadecimali da un server (in questa forma #xxxxxx, ad esempio #000000per il nero)
Come lo converto in un valore intero?
Ho provato a fare Integer.valueOf("0x" + passedColor.substring(1, passedColor.length()))per ottenere un risultato ancora più estastico 0x000000, ma questo non è interpretato come un intqui, altri suggerimenti?
Ricevo un errore: 08-03 21:06:24.673: ERROR/AndroidRuntime(20231): java.lang.NumberFormatException: unable to parse '0x00C8FBFE' as integer
Sto usando l'SDK di Android per la loro setBackgroundColor(int color)funzione, che richiede, come avrai intuito, un valore di colore intero.
Questo è l'opposto di questa domanda: come convertire un intero di colore in una stringa esadecimale in Android?
valueOfmetodo a due argomenti , dove specifichi la stringa di input (senza il #, ovviamente) e la radice, che specifica la base.Integer.valueOf(passedColor.substring(1, passedColor.length()), 16)Questo può essere fatto con qualsiasi base intera! download.oracle.com/javase/6/docs/api/java/lang/… , int)