Поиск объекта с использованием findViewById со строкой всегда возвращает значение null

avatar
Mr_ME23
9 августа 2021 в 00:20
65
0
0

Я пытаюсь найти объект с помощью findViewById со строкой, используя эту строку

Slots[i][j] = requireActivity().findViewById(getResources().getIdentifier(builder.toString(), "id", requireActivity().getPackageName()));

но при запуске всегда возвращает null. Когда я печатаю идентификатор, который он использует, он печатает что-то вроде 2131231288, когда реальное значение идентификатора равно 1000072. Я проверил, чтобы убедиться, что строка верна и совпадает с идентификатором. Кто-нибудь знает, почему это происходит?

Источник
Mike M.
9 августа 2021 в 00:25
0

Учитывая вызовы requireActivity(), похоже, что это Fragment. Если да, то вам нужно позвонить findViewById() на Fragment View, а не на Activity.

Mr_ME23
9 августа 2021 в 00:30
1

Не могу поверить, что это было так просто. Огромное спасибо!

Stephen C
9 августа 2021 в 00:33
0

@ Mr_ME23 - Вам не следовало помечать этот вопрос тегом [android-studio]. Дело не в IDE, которую вы используете. Речь идет о платформе, для которой вы создаете свое приложение; то есть [android]. В будущем читайте вики тегов для тегов, которые вы используете.

Ответы (0)