AppCompatResources.getDrawable, вероятно, возвращает ноль, если идентификатор ресурса недействителен, или ссылается на что-то другое, чем рисуемое.Есть ли какая-либо другая причина, по которой getDrawable (context, Остаток) возвращает ноль?
Я иногда сталкиваюсь с таким кодом, имеет ли смысл здесь проверка на нуль?:
initToolbar() {
ActionBar actionBar = getSupportActionBar();
Drawable drawable = AppCompatResources.getDrawable(getContext(), R.drawable.ic_close_24dp);
//is there any reason to check for null
if (drawable != null) {
drawable.setColorFilter(ColorUtil.getColorPrimary(requireContext()), PorterDuff.Mode.MULTIPLY);
actionBar.setHomeAsUpIndicator(drawable);
} else {
actionBar.setHomeAsUpIndicator(ic_close_primary_24dp);
}
}
Причиной появления такого кода является то, что студиявыдаст предупреждение для кода, подобного этому:
mToolbar.setNavigationIcon(R.drawable.ic_24_close);
mToolbar.getNavigationIcon().setColorFilter(filter); //warning here, but should I react to it?