-2

I'm trying to set the srcCompat of an ImageView but got this error instead.

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pangelyn/com.example.pangelyn.SwipeRight}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference

I've checked multiple post in SO already but nothing seems to work.

Java file:

private void loadLocale() {
    SharedPreferences prefs = getSharedPreferences("Settings", Activity.MODE_PRIVATE);
    String language = prefs.getString("Lang","");
    setLocale(language);

    ImageView imageView = findViewById(R.id.imageView_flag);

    if (language.equals("en")) {
        imageView.setImageResource(R.drawable.usa);
    }
    else if (language.equals("in")) {
        imageView.setImageResource(R.drawable.indonesia);
    }
    else if (language.equals("fil")) {
        imageView.setImageResource(R.drawable.philippines);
    }
}

XML file:

            <ImageView
                android:id="@+id/imageView_flag"
                android:layout_width="30sp"
                android:layout_height="30sp"
                android:layout_alignParentRight="true"
                android:layout_marginRight="5sp"
                android:background="@drawable/stroke"
                android:padding="3dp"
                android:scaleType="centerInside"
                app:srcCompat="@drawable/philippines" />

EDIT:

2020-02-13 23:32:37.312 9854-9854/com.example.pangelyn E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.pangelyn, PID: 9854
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pangelyn/com.example.pangelyn.SwipeRight}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6494)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
    at com.example.pangelyn.SwipeRight.loadLocale(SwipeRight.java:164)
    at com.example.pangelyn.SwipeRight.onCreate(SwipeRight.java:42)
    at android.app.Activity.performCreate(Activity.java:7009)
    at android.app.Activity.performCreate(Activity.java:7000)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) 
    at android.app.ActivityThread.-wrap11(Unknown Source:0) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6494) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Nodoodle
  • 57
  • 2
  • 8

1 Answers1

0

Try using setBackgroundResource() instead of setImageResource()

Marc ABOUCHACRA
  • 3,155
  • 12
  • 19
sena
  • 53
  • 8