Серия, в которой я пишу о досадных ошибках, которые я допустил во время своих выходок в программировании. Цель этого состоит в том, чтобы помочь другим учиться на моих ошибках, а также улучшить сохранение этих ошибок в памяти, чтобы я не повторял себя.
Больше часа моего времени было потеряно при попытке внедрить настройки 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 лет, я все еще совершал основную ошибку, не сразу используя различные инструменты отладки, имеющиеся в моем распоряжении, чтобы увидеть, что происходит на самом деле, вместо того, чтобы предполагать.
Какие неловкие ошибки вы сделали и извлекли уроки при программировании? Я хотел бы знать в комментариях.