android - IllegalStateException when trying to show popupWindow -
i have next code. it's pretty straightforward. want able spawn popupwindow whenever press menu item. however, not understand error
06-23 19:32:51.996: e/androidruntime(8237): fatal exception: main 06-23 19:32:51.996: e/androidruntime(8237): process: com.package, pid: 8237 06-23 19:32:51.996: e/androidruntime(8237): java.lang.illegalstateexception: view org.holoeverywhere.widget.linearlayout{436bbf70 v.e..... ......id 0,0-0,0} has been added window manager. 06-23 19:32:51.996: e/androidruntime(8237): @ android.view.windowmanagerglobal.addview(windowmanagerglobal.java:230) 06-23 19:32:51.996: e/androidruntime(8237): @ android.view.windowmanagerimpl.addview(windowmanagerimpl.java:69) 06-23 19:32:51.996: e/androidruntime(8237): @ org.holoeverywhere.widget.popupwindow.invokepopup(popupwindow.java:462) 06-23 19:32:51.996: e/androidruntime(8237): @ org.holoeverywhere.widget.popupwindow.showatlocation(popupwindow.java:683) 06-23 19:32:51.996: e/androidruntime(8237): @ org.holoeverywhere.widget.popupwindow.showatlocation(popupwindow.java:687) 06-23 19:32:51.996: e/androidruntime(8237): @ com.package.deviceselectionactivity.showpopupfilter(deviceselectionactivity.java:198) 06-23 19:32:51.996: e/androidruntime(8237): @ com.package.deviceselectionactivity.onoptionsitemselected(deviceselectionactivity.java:140) 06-23 19:32:51.996: e/androidruntime(8237): @ org.holoeverywhere.app.activity.onoptionsitemselected(activity.java:338) 06-23 19:32:51.996: e/androidruntime(8237): @ android.app.activity.onmenuitemselected(activity.java:2600) 06-23 19:32:51.996: e/androidruntime(8237): @ android.support.v4.app.fragmentactivity.onmenuitemselected(fragmentactivity.java:366) 06-23 19:32:51.996: e/androidruntime(8237): @ org.holoeverywhere.app.activity.access$6(activity.java:1) 06-23 19:32:51.996: e/androidruntime(8237): @ org.holoeverywhere.app.activity$13.post(activity.java:305) 06-23 19:32:51.996: e/androidruntime(8237): @ org.holoeverywhere.addon.iaddonbasicattacher.performaddonaction(iaddonbasicattacher.java:81) 06-23 19:32:51.996: e/androidruntime(8237): @ org.holoeverywhere.app.activity.performaddonaction(activity.java:523) 06-23 19:32:51.996: e/androidruntime(8237): @ org.holoeverywhere.app.activity.onmenuitemselected(activity.java:297) 06-23 19:32:51.996: e/androidruntime(8237): @ com.android.internal.policy.impl.phonewindow.onmenuitemselected(phonewindow.java:1012) 06-23 19:32:51.996: e/androidruntime(8237): @ com.android.internal.view.menu.menubuilder.dispatchmenuitemselected(menubuilder.java:741) 06-23 19:32:51.996: e/androidruntime(8237): @ com.android.internal.view.menu.menuitemimpl.invoke(menuitemimpl.java:152) 06-23 19:32:51.996: e/androidruntime(8237): @ com.android.internal.view.menu.menubuilder.performitemaction(menubuilder.java:884) 06-23 19:32:51.996: e/androidruntime(8237): @ com.android.internal.view.menu.menubuilder.performitemaction(menubuilder.java:874) 06-23 19:32:51.996: e/androidruntime(8237): @ com.android.internal.view.menu.actionmenuview.invokeitem(actionmenuview.java:546) 06-23 19:32:51.996: e/androidruntime(8237): @ com.android.internal.view.menu.actionmenuitemview.onclick(actionmenuitemview.java:115) 06-23 19:32:51.996: e/androidruntime(8237): @ android.view.view.performclick(view.java:4438) 06-23 19:32:51.996: e/androidruntime(8237): @ android.view.view$performclick.run(view.java:18422) 06-23 19:32:51.996: e/androidruntime(8237): @ android.os.handler.handlecallback(handler.java:733) 06-23 19:32:51.996: e/androidruntime(8237): @ android.os.handler.dispatchmessage(handler.java:95) 06-23 19:32:51.996: e/androidruntime(8237): @ android.os.looper.loop(looper.java:136) 06-23 19:32:51.996: e/androidruntime(8237): @ android.app.activitythread.main(activitythread.java:5001) 06-23 19:32:51.996: e/androidruntime(8237): @ java.lang.reflect.method.invokenative(native method) 06-23 19:32:51.996: e/androidruntime(8237): @ java.lang.reflect.method.invoke(method.java:515) 06-23 19:32:51.996: e/androidruntime(8237): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:785) 06-23 19:32:51.996: e/androidruntime(8237): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:601) 06-23 19:32:51.996: e/androidruntime(8237): @ dalvik.system.nativestart.main(native method)
added below peek of activity
view filterview; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); layoutinflater inflater = (layoutinflater) this.getsystemservice(context.layout_inflater_service); setcontentview(r.layout.main_activity); filterview = inflater.inflate(r.layout.popup_layout, null, false); }
i need filterview global since utilize in of methods also
public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case r.id.device_selection_filter: showpopupfilter(); break; } homecoming super.onoptionsitemselected(item); } private void showpopupfilter(){ final popupwindow filters = new popupwindow(filterview, getwindowmanager().getdefaultdisplay().getwidth(), 800, true); filters.showatlocation(findviewbyid(r.id.parent), gravity.bottom, 0, 0); fluxtextview tv = ((fluxtextview) (filterview.findviewbyid(r.id.click))); tv.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { filters.dismiss(); } }); }
as turns out, there isn't error in code. managed prepare adding return true;
instead of break;
after case.
switch (item.getitemid()) { case r.id.device_selection_filter: showpopupfilter(); homecoming true; }
(anyone right me if i'm wrong) happens onoptionsitemselected()
getting run twice after every click. leads popup layout beingness added twice, hence
illegatstateexception ... has been added window manager.
i hope helps in future.
android popupwindow illegalstateexception
No comments:
Post a Comment