2017-02-20 50 views
0

快餐栏不在popupwindow内部工作。这是我试过的代码。 第一我创建popupwindow如何使快餐栏出现在popupwindow上方?

//popupwindow 
    LayoutInflater inflater = (LayoutInflater) AddMembersToEventActivity.this.getSystemService(LAYOUT_INFLATER_SERVICE); 
    View editFamilyPopupView = inflater.inflate(R.layout.activity_edit_family_member_popup,null); 
    final RelativeLayout parentLayout = (RelativeLayout)editFamilyPopupView.findViewById(R.id.parent_layout); 
    final PopupWindow editFamilyPopupWindow = new PopupWindow(
      editFamilyPopupView, 
      RelativeLayout.LayoutParams.MATCH_PARENT, 
      RelativeLayout.LayoutParams.MATCH_PARENT 
    ); 
    .... 

调用snakcbar方法

showSnackBar(getString(R.string.rashi_msg),parentLayout); 
    ... 

表示小吃吧

//show snackbar 
public void showSnackBar(String message,ViewGroup viewGroup){ 
    Snackbar snackbar = Snackbar 
      .make(viewGroup, message, Snackbar.LENGTH_LONG); 

    snackbar.show(); 
} 
    //... 
    //exception 
    02-20 13:52:20.747 20762-20762/divine.calcify.com.divine E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: 
                     java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.view.ViewGroup.getContext()' on a null object reference 
                      at android.support.design.widget.Snackbar.<init>(Snackbar.java:188) 
                      at android.support.design.widget.Snackbar.make(Snackbar.java:220) 
                      at divine.calcify.activities.AddMembersToEventActivity.showSnackBar(AddMembersToEventActivity.java:866) 
                      at divine.calcify.activities.AddMembersToEventActivity$9.onClick(AddMembersToEventActivity.java:663) 
                      at android.view.View.performClick(View.java:4856) 
                      at android.view.View$PerformClick.run(View.java:19956) 
                      at android.os.Handler.handleCallback(Handler.java:739) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:211) 
                      at android.app.ActivityThread.main(ActivityThread.java:5389) 
                      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:1020) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815) 

如何使小吃吧出现上述popupwindow?

+0

从哪里调用'showSnackBar'? – Sid

回答

0

由于Snackbar无法附加到view,因此您会收到该例外情况。

更多详细真正的情况是,Snackbar呼吁viewGroup这似乎是null并会导致异常升高getContext()

p.s.请注意,链接指向View.getContext(),但没关系ViewGroup继承自View

相关问题