-1

I'm trying to set the onClickListener on an ImageButton but I get the following error:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.bordi.hotel, PID: 18420
              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.bordi.hotel/com.example.bordi.hotel.DetaiImage}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageButton.setOnClickListener(android.view.View$OnClickListener)' 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.ImageButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
                  at com.example.bordi.hotel.DetaiImage.onCreate(DetaiImage.java:28)
                  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)

Below is the code I'm using:

    @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    close = (ImageButton) findViewById(R.id.closeDetail);

    close.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            DetaiImage.super.onBackPressed();
        }
    });
}

Thanks in advance for your help!

nomadSK25
  • 2,350
  • 3
  • 25
  • 36

1 Answers1

1

You forgot setContentView(R.layout.activity_main);
after super.onCreate(savedInstanceState);
and if you have not a prior global declaration in your activity of close, do it like this:

ImageButton close = (ImageButton) findViewById(R.id.closeDetail);