Sunday 15 March 2015

android - PopupMenu inside Adapter getView() not working -



android - PopupMenu inside Adapter getView() not working -

i'm using custom adapter , adding code on getview() method:

final imageview popupmenu = (imageview) v.findviewbyid(r.id.popupmenu); popupmenu.setonclicklistener(new onclicklistener() { @override public void onclick(view view) { popupmenu.setimageresource(r.drawable.ic_popup_menu_selected); popupmenu popup = new popupmenu(context, view); popup.getmenuinflater().inflate(r.menu.popup, popup.getmenu()); popup.setondismisslistener(new popupmenu.ondismisslistener() { @override public void ondismiss(popupmenu pm) { popupmenu.setimageresource(r.drawable.ic_popup_menu); } }); popup.show(); } });

but error: java.lang.runtimeexception: failed resolve attribute @ index 6

the same code works onlistitemclick() doesn't create sense there because needs clicked 1 time setup , click 1 time again trigger popupmenu.

edit: logcat

11-02 17:58:51.276 1996-1996/com.android.example e/androidruntime﹕ fatal exception: main process: com.android.example, pid: 1996 java.lang.runtimeexception: failed resolve attribute @ index 6 @ android.content.res.typedarray.getlayoutdimension(typedarray.java:603) @ android.view.viewgroup$layoutparams.setbaseattributes(viewgroup.java:6423) @ android.view.viewgroup$marginlayoutparams.<init>(viewgroup.java:6591) @ android.widget.framelayout$layoutparams.<init>(framelayout.java:735) @ android.widget.framelayout.generatelayoutparams(framelayout.java:679) @ android.widget.framelayout.generatelayoutparams(framelayout.java:62) @ android.view.layoutinflater.inflate(layoutinflater.java:492) @ android.view.layoutinflater.inflate(layoutinflater.java:414) @ android.support.v7.internal.view.menu.menupopuphelper$menuadapter.getview(menupopuphelper.java:363) @ android.support.v7.internal.view.menu.menupopuphelper.measurecontentwidth(menupopuphelper.java:212) @ android.support.v7.internal.view.menu.menupopuphelper.tryshow(menupopuphelper.java:146) @ android.support.v7.internal.view.menu.menupopuphelper.show(menupopuphelper.java:118) @ android.support.v7.widget.popupmenu.show(popupmenu.java:168) @ com.android.example.getadapter$listadapter$1.onclick(getadapter.java:81) @ android.view.view.performclick(view.java:4756) @ android.view.view$performclick.run(view.java:19749) @ android.os.handler.handlecallback(handler.java:739) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:135) @ android.app.activitythread.main(activitythread.java:5221) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:899) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:694)

this issue related missing theme attributes. create sure app theme extends theme.appcompat.

<style name="apptheme" parent="@style/theme.appcompat" />

android listview adapter popupmenu

No comments:

Post a Comment