Что делать, когда контекст является нулевым во фрагменте - PullRequest
0 голосов
/ 02 декабря 2018

Безопасно (правильно) просто вернуться из метода и ничего не делать, если контекст равен нулю?в настоящее время я делаю это, когда мне нужен контекст из фрагмента.

Context context = getContext();
if(context == null) return;

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


Я делаю эту проверку в onCreateView, onViewCreated, при получении контекста из itemView в держателях представления и слушателях щелчков внутри представления, когда это необходимо.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Поскольку ваш код находится внутри фрагмента, вы должны использовать:

getActivity()

, чтобы получить контекст активности хоста.Почему вы получаете null контекст?После onAttach() вы можете использовать getContext()

0 голосов
/ 02 декабря 2018

Я думаю, что перебегать и ничего не делать так же плохо, как поймать исключение и проглотить его.

У фрагмента есть метод requireContext().Это просто вылетает из приложения, когда контекст нулевой.На самом деле, я никогда не видел, чтобы мое приложение зависало из-за этого.Поэтому я предполагаю, что нулевой контекст во фрагменте является довольно редким и экстремальным случаем.

В onViewCreated вы также можете получить контекст из созданного представления.Он не нулевой, потому что для создания представления требуется контекст.

Если вам нужны некоторые ресурсы, вы также можете использовать getResources().getString() вместо getContext().getString()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...