java - NullPointerException on Button.findViewById() -


i followed tutorial create dialog in android studio. code shows no error in java file, says "unfortunately app has stopped working". don't know why.

my java file:

import android.app.alertdialog; import android.content.dialoginterface; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.button;  public class mainactivity extends appcompatactivity {     private static button b1;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);         onbutoonlistener();     }      public void onbutoonlistener(){         b1=(button) b1.findviewbyid(r.id.button);         b1.setonclicklistener(new view.onclicklistener() {                 @override                 public void onclick(view v) {                     alertdialog.builder ad = new          alertdialog.builder(mainactivity.this);                     ad.setmessage("do want   close").setcancelable(false).setpositivebutton("yes", new dialoginterface.onclicklistener() {                             @override                             public void onclick(dialoginterface dialog, int which) {                                 finish();                             }                         }).setnegativebutton("no", new dialoginterface.onclicklistener() {                             @override                             public void onclick(dialoginterface dialog, int which) {                                 dialog.cancel();                             }                         });                     alertdialog ad1= ad.create();                     ad1.settitle("alert!!");                     ad1.show();                 }             });     }      @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.menu_main, menu);         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         // handle action bar item clicks here. action bar         // automatically handle clicks on home/up button, long         // specify parent activity in androidmanifest.xml.         int id = item.getitemid();          //noinspection simplifiableifstatement         if (id == r.id.action_settings) {             return true;         }          return super.onoptionsitemselected(item);     } } 

my xml fie:

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"     android:layout_height="match_parent" android:paddingleft="@dimen/activity_horizontal_margin"     android:paddingright="@dimen/activity_horizontal_margin"     android:paddingtop="@dimen/activity_vertical_margin"     android:paddingbottom="@dimen/activity_vertical_margin" tools:context=".mainactivity">      <button         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="new button"         android:id="@+id/button"         android:layout_alignparenttop="true"         android:layout_alignparentstart="true"         android:layout_margintop="188dp" />  </relativelayout> 

my logcat:

 06-13 21:32:20.500  11336-11336/hilz.myapplication e/androidruntime﹕ fatal exception: main         process: hilz.myapplication, pid: 11336         java.lang.runtimeexception: unable start activity componentinfo{hilz.myapplication/hilz.myapplication.mainactivity}: java.lang.nullpointerexception: attempt invoke virtual method 'android.view.view android.widget.button.findviewbyid(int)' on null object reference                 @ android.app.activitythread.performlaunchactivity(activitythread.java:2325)                 @ android.app.activitythread.handlelaunchactivity(activitythread.java:2390)                 @ android.app.activitythread.access$800(activitythread.java:151)                 @ android.app.activitythread$h.handlemessage(activitythread.java:1303)                 @ android.os.handler.dispatchmessage(handler.java:102)                 @ android.os.looper.loop(looper.java:135)                 @ android.app.activitythread.main(activitythread.java:5257)                 @ java.lang.reflect.method.invoke(native method)                 @ java.lang.reflect.method.invoke(method.java:372)                 @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903)                 @ com.android.internal.os.zygoteinit.main(zygoteinit.java:698)          caused by: java.lang.nullpointerexception: attempt invoke virtual method 'android.view.view android.widget.button.findviewbyid(int)' on null object reference                 @ hilz.myapplication.mainactivity.onbutoonlistener(mainactivity.java:23)                 @ hilz.myapplication.mainactivity.oncreate(mainactivity.java:20)                 @ android.app.activity.performcreate(activity.java:5990)                 @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1106)                 @ android.app.activitythread.performlaunchactivity(activitythread.java:2278)                 at android.app.activitythread.handlelaunchactivity(activitythread.java:2390)                 at android.app.activitythread.access$800(activitythread.java:151)                 at android.app.activitythread$h.handlemessage(activitythread.java:1303)                 at android.os.handler.dispatchmessage(handler.java:102)                 at android.os.looper.loop(looper.java:135)                 at android.app.activitythread.main(activitythread.java:5257)                 at java.lang.reflect.method.invoke(native method)                 at java.lang.reflect.method.invoke(method.java:372)                 at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903)                 at com.android.internal.os.zygoteinit.main(zygoteinit.java:698) 

you invoking findviewbyid() method in wrong way. should invoked on activity itself, not on button reference. replace

b1=(button) b1.findviewbyid(r.id.button); 

with

b1=(button) findviewbyid(r.id.button); 

the b1 reference null @ point, , reason nullpointerexception.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

php - Find a regex to take part of Email -

javascript - Function overwritting -