У меня возникла странная проблема с использованием findViewById (id). Возвращается сообщение "ресурс не найден", хотя ресурс определенно есть. Это textview в макете рядом с другим textview, один из textviews я могу найти по идентификатору, но другой показывает, что ресурс не найден. Есть ли какая-либо причина, по которой это может происходить?
Переведено автоматически
Ответ 1
Убедитесь, что на самом деле вы не просто пытаетесь преобразовать текст в число и ожидаете, что он автоматически преобразуется в строку.
Ответ 2
Попробуйте очистить свой проект или опубликовать какой-нибудь код.
Иногда идентификаторы не восстанавливаются корректно, если вы используете Eclipse. Для этого требуется очистка проекта, а иногда и обновление.
Ответ 3
Выданное сообщение об исключении не очень описательно. Очень вероятно, что вы пытаетесь преобразовать значение int в String, применение приведенного ниже изменения устранило проблему для меня.
Просто чтобы прояснить ответ Терры Кейнс, поскольку я видел, что это часто происходит с людьми; TextView и другие текстовые компоненты имеют 2 setText() функции с 1 параметром.
Один из них с a String, а другой с int. int Очевидно, что это для строкового ресурса, такого как R.string.myString - который, для тех, кто не знал, R.exm всегда представляется как int. Строка предназначена для помещения туда строки.
Итак, например, я хочу поместить int x = 1; в TextView. Выполнение mTextView.setText(x); приведет к тому, что TextView будет использовать функцию resource, и поскольку, вероятно, нет ресурса с идентификатором 1, он выдаст исключение "Ресурс не найден". Если вы хотите ввести int или любое число в функцию setText(), обязательно преобразуйте его в String(x+"") or (x.toString()), это сделает все за вас.