I have a grid view in which I am inflating Image Views with images received from the device storage. Now I want to set foreground to the particular image view on which user clicks. But it throws NullPointerException. Here is my code:
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                ImageView cIV = view.findViewById(R.id.gridGalleryImageView);
                cIV.setForeground(AppCompatResources.getDrawable(ImportFromGallery.this, R.drawable.checked_img_fg));
            }
        });
Here ID - gridGalleryImageView is the id for image view that I inflated into each item of the gridView.
And this is the error I am getting:
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapp, PID: 22901
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setForeground(android.graphics.drawable.Drawable)' on a null object reference
        at com.example.myapp.ImportFromGallery$4.onItemClick(ImportFromGallery.java:208)
        at android.widget.AdapterView.performItemClick(AdapterView.java:330)
        at android.widget.AbsListView.performItemClick(AbsListView.java:1221)
        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3216)
        at android.widget.AbsListView$3.run(AbsListView.java:4172)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:236)
        at android.app.ActivityThread.main(ActivityThread.java:8056)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)
This is gallery_img_view.xml that I have inflated in each grid item
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center">
    <androidx.cardview.widget.CardView
        android:id="@+id/gridGalleryImageCardView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:scaleType="centerCrop"
        app:layout_constraintDimensionRatio="1:1"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:cardCornerRadius="6dp"
        android:elevation="10dp"
        android:foreground="@drawable/photo_frame_bg"
        app:layout_constraintTop_toTopOf="parent">
        <ImageView
            android:id="@+id/gridGalleryImageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            app:layout_constraintDimensionRatio="1:1"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>
What could be the cause of this error. Thank you.
 
    