android - NullPointer.Exception PopupWindow.getMaxAvailableHeight using ListPopupWindow -
i'm trying use popupwindow adapter exception occurs. tried search solve problem didn't found anything.
here exception
07-18 10:58:27.600: d/dalvikvm(15218): gc_for_alloc freed 56k, 3% free 6409k/6595k, paused 40ms 07-18 10:58:27.600: i/dalvikvm-heap(15218): grow heap (frag case) 6.804mb 513744-byte allocation 07-18 10:58:27.669: d/dalvikvm(15218): gc_for_alloc freed 8k, 3% free 6902k/7111k, paused 41ms 07-18 10:58:27.749: d/dalvikvm(15218): gc_concurrent freed <1k, 3% free 6902k/7111k, paused 3ms+12ms 07-18 10:58:29.619: d/post(15218): result post jsonpost : 200 : {"success":false} 07-18 10:58:29.809: d/dalvikvm(15218): gc_concurrent freed 103k, 3% free 7235k/7431k, paused 3ms+2ms 07-18 10:58:30.459: d/dalvikvm(15218): gc_for_alloc freed 217k, 5% free 7333k/7687k, paused 99ms 07-18 10:58:30.499: i/dalvikvm-heap(15218): grow heap (frag case) 12.920mb 5981168-byte allocation 07-18 10:58:30.569: d/dalvikvm(15218): gc_for_alloc freed <1k, 3% free 13174k/13575k, paused 35ms 07-18 10:58:30.649: d/dalvikvm(15218): gc_concurrent freed <1k, 3% free 13174k/13575k, paused 3ms+2ms 07-18 10:58:31.499: d/dalvikvm(15218): gc_concurrent freed 6137k, 42% free 9002k/15303k, paused 3ms+3ms 07-18 10:58:59.759: d/androidruntime(15218): shutting down vm 07-18 10:58:59.759: w/dalvikvm(15218): threadid=1: thread exiting uncaught exception (group=0x40014760) 07-18 10:58:59.769: e/androidruntime(15218): fatal exception: main 07-18 10:58:59.769: e/androidruntime(15218): java.lang.nullpointerexception 07-18 10:58:59.769: e/androidruntime(15218): @ android.widget.popupwindow.getmaxavailableheight(popupwindow.java:1164) 07-18 10:58:59.769: e/androidruntime(15218): @ android.widget.listpopupwindow.builddropdown(listpopupwindow.java:1067) 07-18 10:58:59.769: e/androidruntime(15218): @ android.widget.listpopupwindow.show(listpopupwindow.java:517) 07-18 10:58:59.769: e/androidruntime(15218): @ br.com.timo.atlas.principalactivity.onclick(principalactivity.java:123) 07-18 10:58:59.769: e/androidruntime(15218): @ android.view.view.performclick(view.java:3110) 07-18 10:58:59.769: e/androidruntime(15218): @ android.view.view$performclick.run(view.java:11934) 07-18 10:58:59.769: e/androidruntime(15218): @ android.os.handler.handlecallback(handler.java:587) 07-18 10:58:59.769: e/androidruntime(15218): @ android.os.handler.dispatchmessage(handler.java:92) 07-18 10:58:59.769: e/androidruntime(15218): @ android.os.looper.loop(looper.java:132) 07-18 10:58:59.769: e/androidruntime(15218): @ android.app.activitythread.main(activitythread.java:4123) 07-18 10:58:59.769: e/androidruntime(15218): @ java.lang.reflect.method.invokenative(native method) 07-18 10:58:59.769: e/androidruntime(15218): @ java.lang.reflect.method.invoke(method.java:491) 07-18 10:58:59.769: e/androidruntime(15218): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:841) 07-18 10:58:59.769: e/androidruntime(15218): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:599) 07-18 10:58:59.769: e/androidruntime(15218): @ dalvik.system.nativestart.main(native method)
and here's main class code
public class principalactivity extends activity implements onclicklistener{ private listview lv_fragmentlista_lista; private listview lv_fragmentlista_listadireita; private listpopupwindow listpopupwindow; private view popupwindow; private button bt_activitytopbarmenu_areamusculares; private button bt_activitytopbarmenu_meusfavoritos; private button bt_activitytopbarmenu_dicionario; private button bt_activityinfosprincipal_botaomais; private button bt_activityinfosprincipal_botaomenos; private grupomuscularadapter gma; private musculoadapter ma; private popupadapter popupadapter; // private final typeface tfcabinsemibolditalic = typeface.createfromasset(getassets(), "fonts/cabin-semibolditalic.ttf"); // private final typeface tfcabinmediumitalic = typeface.createfromasset(getassets(), "fonts/cabin-mediumitalic.ttf"); // private final typeface tfcabinmedium = typeface.createfromasset(getassets(), "fonts/cabin-medium.ttf"); // private final typeface tfcabinitalic = typeface.createfromasset(getassets(), "fonts/cabin-italic.ttf"); // private final typeface tfcabinbolditalic = typeface.createfromasset(getassets(), "fonts/cabin-bolditalic.ttf"); // private final typeface tfcabinbold = typeface.createfromasset(getassets(), "fonts/cabin-bold.ttf"); @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_principal); atlasdatabasehelper dbhelper = new atlasdatabasehelper(this); bt_activitytopbarmenu_areamusculares = (button) findviewbyid(r.id.bt_activitytopbarmenu_areamusculares); bt_activitytopbarmenu_areamusculares.setonclicklistener(this); bt_activitytopbarmenu_meusfavoritos = (button) findviewbyid(r.id.bt_activitytopbarmenu_meusfavoritos); bt_activitytopbarmenu_meusfavoritos.setonclicklistener(this); bt_activitytopbarmenu_dicionario = (button) findviewbyid(r.id.bt_activitytopbarmenu_dicionario); bt_activitytopbarmenu_dicionario.setonclicklistener(this); bt_activityinfosprincipal_botaomais = (button) findviewbyid(r.id.bt_activityinfosprincipal_botaomais); bt_activityinfosprincipal_botaomais.setonclicklistener(this); bt_activityinfosprincipal_botaomenos = (button) findviewbyid(r.id.bt_activityinfosprincipal_botaomenos); bt_activityinfosprincipal_botaomenos.setonclicklistener(this); list<areamuscular> lstareamuscular = dbhelper.selectallareamuscular(); gma = new grupomuscularadapter(this,lstareamuscular); ma = new musculoadapter(this); list<dicionario> lstdicionario = dbhelper.selectalldicionario(); popupadapter = new popupadapter(this,lstdicionario); popupwindow = findviewbyid(r.layout.fragment_lista); listpopupwindow = new listpopupwindow(this); listpopupwindow.setanchorview(popupwindow); listpopupwindow.setcontentwidth(listpopupwindow.wrap_content); listpopupwindow.setheight(listpopupwindow.wrap_content); listpopupwindow.setinputmethodmode(listpopupwindow.input_method_from_focusable); listpopupwindow.setadapter(popupadapter); lv_fragmentlista_listadireita = (listview) findviewbyid(r.id.lv_activity_listamenudireito); lv_fragmentlista_listadireita.setadapter(ma); lv_fragmentlista_lista = (listview) findviewbyid(r.id.lv_activity_listamenuesquerdo); lv_fragmentlista_lista.setadapter(gma); lv_fragmentlista_lista.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { mudafundobotao(0); lv_fragmentlista_lista.setvisibility(view.gone); lv_fragmentlista_listadireita.setvisibility(view.visible); bt_activitytopbarmenu_areamusculares.setvisibility(view.visible); log.i("id", id + ""); log.i("position", position + ""); } }); setfontface(); } @override public void onclick(view v) { if(v.getid() == r.id.bt_activitytopbarmenu_areamusculares){ mudafundobotao(r.id.bt_activitytopbarmenu_areamusculares); bt_activitytopbarmenu_areamusculares.setvisibility(view.gone); lv_fragmentlista_listadireita.setvisibility(view.gone); lv_fragmentlista_lista.setvisibility(view.visible); } if(v.getid() == r.id.bt_activitytopbarmenu_meusfavoritos){ mudafundobotao(r.id.bt_activitytopbarmenu_meusfavoritos); } if(v.getid() == r.id.bt_activitytopbarmenu_dicionario){ mudafundobotao(r.id.bt_activitytopbarmenu_dicionario); listpopupwindow.show(); } if(v.getid() == r.id.bt_activityinfosprincipal_botaomenos){ } if(v.getid() == r.id.bt_activityinfosprincipal_botaomais){ } } private void mudafundobotao(int idbotao){ if(idbotao == r.id.bt_activitytopbarmenu_areamusculares){ bt_activitytopbarmenu_areamusculares.setbackgroundresource(r.drawable.bt_ativo); bt_activitytopbarmenu_meusfavoritos.setbackgroundresource(r.drawable.bt_normal); bt_activitytopbarmenu_dicionario.setbackgroundresource(r.drawable.bt_normal); } if(idbotao == r.id.bt_activitytopbarmenu_meusfavoritos){ bt_activitytopbarmenu_areamusculares.setbackgroundresource(r.drawable.bt_normal); bt_activitytopbarmenu_meusfavoritos.setbackgroundresource(r.drawable.bt_ativo); bt_activitytopbarmenu_dicionario.setbackgroundresource(r.drawable.bt_normal); } if(idbotao == r.id.bt_activitytopbarmenu_dicionario){ bt_activitytopbarmenu_areamusculares.setbackgroundresource(r.drawable.bt_normal); bt_activitytopbarmenu_meusfavoritos.setbackgroundresource(r.drawable.bt_normal); bt_activitytopbarmenu_dicionario.setbackgroundresource(r.drawable.bt_ativo); } if(idbotao == 0){ bt_activitytopbarmenu_areamusculares.setbackgroundresource(r.drawable.bt_normal); bt_activitytopbarmenu_meusfavoritos.setbackgroundresource(r.drawable.bt_normal); bt_activitytopbarmenu_dicionario.setbackgroundresource(r.drawable.bt_normal); } } private void setfontface(){ typeface tfcabinregular = typeface.createfromasset(getassets(), "fonts/cabin-regular.ttf"); typeface tfcabinsemibold = typeface.createfromasset(getassets(), "fonts/cabin-semibold.ttf"); bt_activitytopbarmenu_areamusculares.settypeface(tfcabinsemibold); bt_activitytopbarmenu_dicionario.settypeface(tfcabinregular); bt_activitytopbarmenu_meusfavoritos.settypeface(tfcabinregular); }
}
line 123 listpopupwindow.show();
i'm creating listpopupwindow , trying show when click on button r.id.bt_activitytopbarmenu_dicionario.
thanks!
ok. not solution error it's alternative route found.
first created variables
private layoutinflater popupwindowinflateracoesmusculares; private view viewpopupwindowacoesmusculares; private popupwindow popupwindowacoesmusculares;
next on oncreate method use code
popupwindowinflateracoesmusculares = (layoutinflater) getsystemservice(context.layout_inflater_service); viewpopupwindowacoesmusculares = popupwindowinflateracoesmusculares.inflate(r.layout.content_acoes_musculares, null,true); vp_contentacoesmusculares_sequenciaexercicios = (viewpager) viewpopupwindowacoesmusculares.findviewbyid(r.id.vp_contentacoesmusculares_sequenciaexercicios); tv_contentacoesmusculares_nomesequencia = (textview) viewpopupwindowacoesmusculares.findviewbyid(r.id.tv_contentacoesmusculares_nomesequencia); tv_contentacoesmusculares_descricaosequencia = (textview) viewpopupwindowacoesmusculares.findviewbyid(r.id.tv_contentacoesmusculares_descricaosequencia); popupwindowacoesmusculares = new popupwindow(viewpopupwindowacoesmusculares,400,500,true); popupwindowacoesmusculares.setoutsidetouchable(true); popupwindowacoesmusculares.setbackgrounddrawable(new bitmapdrawable());
so inflated layout(content_acoes_musculares) on view, created widgets use , created popupwindow using view inflated.
and show popupwindow used code below.
if(!popupwindowacoesmusculares.isshowing()){ int[] local = new int[2]; bt_activityinfosprincipal_acoesmusculares.getlocationonscreen(local); popupwindowacoesmusculares.showatlocation(v,gravity.no_gravity,local[0],local[1] + 60); }
i hope help.
thanks.
Comments
Post a Comment