Итак, я пытаюсь установить colorFilter
для ImageView
, который находится внутри действия фрагмента.Я могу нажать на кнопку, и она работает как положено, за исключением случаев, когда я пытаюсь установить colorFilter, он вылетает и говорит:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setColorFilter(int, android.graphics.PorterDuff$Mode)' on a null object reference
Как это может быть нулевым, если я уже нажимаю на него, и он работает?Как мне это исправить?Вот мой onCreateView:
myButton = (ImageView) view.findViewById(R.id.mybutton);
myButton.setOnClickListener(this);
// testing
myButton.getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);
** ОТВЕТ ** Мое решение, как указано, я использовал app:srcCompat="@drawable
, чтобы установить свой imageView, а не фон.Так что я просто удалил .getBackground
.Вот мое решение:
myButton.setColorFilter(ContextCompat.getColor(context, R.color.Gray), android.graphics.PorterDuff.Mode.MULTIPLY);