2017-07-31 72 views
0

我正在尝试做一个PopupWindow来解释我的应用程序,但是对于看似简单的事情我有很多困难。我尝试过各种YouTube视频,并在这里查看几乎所有类似的帖子,但我还没有任何运气。如果有人能指出我的缺陷,那会很棒。弹出式窗口继续崩溃

我的最终目标是让PopupWindow和on create方法一起出现,但是现在我包含了一个Button来启动它,因为所有的教程都包含了一个。

protected void onCreate(Bundle savedInstanceState) { 
    //BUILDING THE POP UP WINDOW ON CLICK OF HELP BUTTON 

    help=(Button)findViewById(R.id.help); 
    help.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      layoutInflater=(LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE); 
      View customView= layoutInflater.inflate(R.layout.activity_instructions, null); 

      popUpWindow=new PopupWindow(
        customView, 
        RelativeLayout.LayoutParams.WRAP_CONTENT, 
        RelativeLayout.LayoutParams.WRAP_CONTENT 
      ); 
      myButton.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        popUpWindow.dismiss(); 
       } 
      }); 
     } 
    }); 

任何帮助将不胜感激。如果我需要包含更多信息,请不要问。我是新来的机器人,这是我的第一个大应用程序,以保持我的希望。

感谢 The link to my log

07-30 23:32:07.062 9273-9273/my.myCompany.vinay.diversityformulaapplication E/AndroidRuntime: FATAL EXCEPTION: main 
                           Process: my.myCompany.vinay.diversityformulaapplication, PID: 9273 
                           java.lang.RuntimeException: Unable to start activity ComponentInfo{my.myCompany.vinay.diversityformulaapplication/my.myCompany.vinay.diversityformulaapplication.EntryScreen}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2947) 
                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3008) 
                            at android.app.ActivityThread.-wrap14(ActivityThread.java) 
                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650) 
                            at android.os.Handler.dispatchMessage(Handler.java:102) 
                            at android.os.Looper.loop(Looper.java:154) 
                            at android.app.ActivityThread.main(ActivityThread.java:6688) 
                            at java.lang.reflect.Method.invoke(Native Method) 
                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) 
                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 
                           Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
                            at my.myCompany.vinay.diversityformulaapplication.EntryScreen.onCreate(EntryScreen.java:37) 
                            at android.app.Activity.performCreate(Activity.java:6912) 
                            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126) 
                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2900) 
                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3008)  
                            at android.app.ActivityThread.-wrap14(ActivityThread.java)  
                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)  
                            at android.os.Handler.dispatchMessage(Handler.java:102)  
                            at android.os.Looper.loop(Looper.java:154)  
                            at android.app.ActivityThread.main(ActivityThread.java:6688)  
                            at java.lang.reflect.Method.invoke(Native Method)  
                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)  
                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)  
+0

你的日志文件在哪里? –

+0

如何获取日志文件? – bobthebuilder

+0

请参阅[本教程](https://www.javatpoint.com/android-popup-menu-example)。 – Abhi

回答

0

myButton的为空在这里。
你错过了这个

myButton = (Button)customView.findViewById(R.id.myButtonId);