Ricevo valori di colore esadecimali da un server (in questa forma #xxxxxx
, ad esempio #000000
per 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 int
qui, 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?
valueOf
metodo 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)