Серия, в которой я пишу о досадных ошибках, которые я допустил во время своих выходок в программировании. Цель этого состоит в том, чтобы помочь другим учиться на моих ошибках, а также улучшить сохранение этих ошибок в памяти, чтобы я не повторял себя.

Больше часа моего времени было потеряно при попытке внедрить настройки Jetpack в мой личный проект Списки. Проблема возникла, когда я настраивал фрагмент (подобный ведущему), привязанный к макету XML (подобный представлению). Вам нужен ключ предпочтения, чтобы ссылаться на него из фрагмента, ключ хранится в ресурсах String. Чтобы получить ключ, я изначально использовал R.res.string.prefs_id_some_pref.toString(). На мой взгляд, это будет принимать идентификатор ресурса, возвращаемый классом R (целое число), и использовать его для извлечения сохраненного значения String. Очевидно, это не удалось.

Сначала я подумал, что это проблема с библиотекой настроек Jetpack, потому что, конечно, я не делал ошибочных ошибок. Из-за такого плохого отношения я потерял более часа на поиск решения в Google. Я, наконец, увидел свои ошибочные пути, когда я замедлил и прочитал код, указанный в вопросах и решениях StackOverflow, вместо того, чтобы сразу перейти к выбранному решению. Я видел, что они использовали метод getString() для получения ключа предпочтения. Я совершенно забыл о методе getString(). В этот момент я, наконец, вспомнил, что я узнал от других и видел, как это хорошо работает на практике, операторы журнала и точки останова. Я отобразил результат R.res.string.prefs_id_some_pref.toString() через сообщение журнала и увидел, что он выводит идентификатор ресурса, а не значение ресурса. Метод toString(), как следует из его названия, просто превращает тип, к которому он вызывается, в строку. Мне нужно было использовать getString(R.res.string.prefs_id_some_pref) для желаемого поведения.

Урок, который нужно усвоить, заключается в следующем: 1) немедленно используйте сообщения журнала, точки останова и другие инструменты отладки и 2) внимательно читайте сообщения, которые вы ищете для ответа. Даже после того, как я занимался разработкой приложений для Android более 2 лет, я все еще совершал основную ошибку, не сразу используя различные инструменты отладки, имеющиеся в моем распоряжении, чтобы увидеть, что происходит на самом деле, вместо того, чтобы предполагать.

Какие неловкие ошибки вы сделали и извлекли уроки при программировании? Я хотел бы знать в комментариях.

Контакты