2013-08-30 2 views
1

Как говорит название у меня есть этот кодjava.lang.Integer.parseInt не будет принимать 0xFFFFFFFF

needleColor = Integer.parseInt(mPrefs.getString("color_key", "-1")); 

, что бросает NumberFormatException заявив, что «0xFFFFFFFF не является допустимым целым числом». Этот код работал до тех пор, пока Eclipse не разбился, и я полностью удалил eclipse и снова загрузил adk.

Глядя на документацию http://developer.android.com/reference/android/graphics/Color.html, цвета представлены как ints, а значение равно -1. Так что это действительный int ...

+0

Почему бы не просто установить 'needleColor = -1'? –

+0

Почему вы не можете сохранить его как число вместо строки в SharedPreferences? – Krylez

+0

Ack, я внезапно оказался вне города. Я хотел, чтобы пользователь мог выбрать любой цвет, который он хотел для иглы, но по умолчанию белый. И по какой бы то ни было причине, когда я пытаюсь хранить что-либо, кроме строки, я получаю цифру 'IllegalFormatException' Go. – DownrangeFuture

ответ

7

Integer.parseInt не обрабатывает префикс 0x - он ожидает, что вы пройдете голыми цифрами и радиусом. Integer.decode, вероятно, будет делать то, что вы хотите.

+0

Ну, декодирование - лучший вариант здесь. –

+0

Исправлено. Благодарю. У меня, вероятно, был «Interger.decode» в моем предыдущем коде, но сбой и последующая фиксация вызвали некоторую неудачную перекодировку. – DownrangeFuture

Смежные вопросы