07-17 15:57:45.523: w/dalvikvm(6777): threadid=1: thread exiting uncaught exception (group=0x4001d5a0) 07-17 15:57:45.583: w/system.err(6777): java.lang.nullpointerexception 07-17 15:57:45.583: w/system.err(6777): @ android.widget.textview.ontouchevent(textview.java:7503) 07-17 15:57:45.583: w/system.err(6777): @ android.view.view.dispatchtouchevent(view.java:3933) 07-17 15:57:45.583: w/system.err(6777): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:906) 07-17 15:57:45.583: w/system.err(6777): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:906) 07-17 15:57:45.583: w/system.err(6777): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:906) 07-17 15:57:45.583: w/system.err(6777): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:906) 07-17 15:57:45.593: w/system.err(6777): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:906) 07-17 15:57:45.593: w/system.err(6777): @ com.android.internal.policy.impl.phonewindow$decorview.superdispatchtouchevent(phonewindow.java:1881) 07-17 15:57:45.593: w/system.err(6777): @ com.android.internal.policy.impl.phonewindow.superdispatchtouchevent(phonewindow.java:1216) 07-17 15:57:45.593: w/system.err(6777): @ android.app.activity.dispatchtouchevent(activity.java:2228) 07-17 15:57:45.593: w/system.err(6777): @ com.android.internal.policy.impl.phonewindow$decorview.dispatchtouchevent(phonewindow.java:1856) 07-17 15:57:45.593: w/system.err(6777): @ android.view.viewroot.deliverpointerevent(viewroot.java:2382) 07-17 15:57:45.593: w/system.err(6777): @ android.view.viewroot.handlemessage(viewroot.java:2010) 07-17 15:57:45.593: w/system.err(6777): @ android.os.handler.dispatchmessage(handler.java:99) 07-17 15:57:45.593: w/system.err(6777): @ android.os.looper.loop(looper.java:150) 07-17 15:57:45.593: w/system.err(6777): @ android.app.activitythread.main(activitythread.java:4312) 07-17 15:57:45.593: w/system.err(6777): @ java.lang.reflect.method.invokenative(native method) 07-17 15:57:45.593: w/system.err(6777): @ java.lang.reflect.method.invoke(method.java:507) 07-17 15:57:45.593: w/system.err(6777): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:849) 07-17 15:57:45.593: w/system.err(6777): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:607) 07-17 15:57:45.603: w/system.err(6777): @ dalvik.system.nativestart.main(native method) a nullpointerexception occurs when scroll , down on devices(android 2.3) quickly,but works fine on emulator , devices version of 4.0, i'm not sure what's going on,wish guys can help.
here main code:
private class detailexpandadapter extends baseexpandablelistadapter{
private drawable isnull; public detailexpandadapter(){ isnull = getresources().getdrawable(r.drawable.star); //调用setcompounddrawables时,必须调用drawable.setbounds()方法,否则图片不显示 isnull.setbounds(0, 0, isnull.getminimumwidth(), isnull.getminimumheight()); } @override public int getgroupcount() { return group.size(); } @override public int getchildrencount(int groupposition) { return child.get(groupposition).size(); } @override public object getgroup(int groupposition) { return group.get(groupposition); } @override public object getchild(int groupposition, int childposition) { return child.get(groupposition).get(childposition); } @override public long getgroupid(int groupposition) { return groupposition; } @override public long getchildid(int groupposition, int childposition) { return groupposition * 100 + childposition; } @override public boolean hasstableids() { return false; } @override public view getgroupview(int groupposition, boolean isexpanded, view convertview, viewgroup parent) { viewholder holder = null; if(convertview == null){ textview text = new textview(update.this); text.setgravity(gravity.center_vertical | gravity.left); text.settextsize(15); text.settextcolor(color.black); abslistview.layoutparams lp; lp = new abslistview.layoutparams( viewgroup.layoutparams.fill_parent, objectutils.getfontheight(text.gettextsize()) * 2); text.setlayoutparams(lp); text.setbackgroundresource(r.drawable.expanditemgroup); convertview = text; holder = new viewholder(); holder.key = (textview)convertview; convertview.settag(holder); }else { holder = (viewholder)convertview.gettag(); } ((textview)convertview).settext(group.get(groupposition)); holder.key.settext(group.get(groupposition)); return convertview; } @override public view getchildview(final int groupposition, final int childposition, boolean islastchild, view convertview, viewgroup parent) { final viewholder holder; final configitem item=child.get(groupposition).get(childposition); if(convertview == null ){ holder = new viewholder(); convertview = layoutinflater.from(update.this).inflate(r.layout.queryitem, null); holder.isused = (checkbox)convertview.findviewbyid(r.id.isused); holder.key = (textview)convertview.findviewbyid(r.id.key); holder.edit_value = (edittext)convertview.findviewbyid(r.id.editvalue); holder.edit_value.setvisibility(view.visible); holder.text_value = (edittext)convertview.findviewbyid(r.id.textvalue); holder.btn = (imageview)convertview.findviewbyid(r.id.set); holder.isused.setvisibility(view.gone); layoutparams params = holder.key.getlayoutparams(); params.width = update.this.getwindowmanager().getdefaultdisplay().getwidth()/4; holder.key.setlayoutparams(params); convertview.settag(holder); }else{ holder = (viewholder)convertview.gettag(); } holder.edit_value.clearfocus(); holder.key.settext(item.getcolumndescribe() + ":"); //增加必输项图标 if (!item.isnull()) { holder.key.setcompounddrawables(isnull, null, null, null); }else{ holder.key.setcompounddrawables(null, null, null, null); } //编辑框监听及赋值 holder.edit_value.setonfocuschangelistener(new onfocuschangelistener() { @override public void onfocuschange(view v, boolean hasfocus) { if(!hasfocus){ item.setdisplayvalue(((edittext)v).gettext().tostring()); item.setvalue(((edittext)v).gettext().tostring()); } } }); if(item.islist()){ holder.edit_value.settext(item.getdisplayvalue()); holder.text_value.settext(item.getdisplayvalue()); }else if(item.getcolumntype().equals("virtualbutton")){ holder.edit_value.settext(item.getcolumndescribe()); holder.text_value.settext(item.getcolumndescribe()); }else{ holder.edit_value.settext(item.getvalue()); holder.text_value.settext(item.getvalue()); } if(item.getcolumntype().equalsignorecase("number")){ //only number allowed when columntype number holder.text_value.setinputtype(inputtype.type_class_number); holder.edit_value.setinputtype(inputtype.type_class_number); holder.text_value.setsingleline(true); holder.text_value.setlines(1); holder.edit_value.setsingleline(true); holder.edit_value.setlines(1); } else if(item.getcolumntype().equalsignorecase("textarea")){ holder.text_value.setinputtype(inputtype.type_class_text); holder.edit_value.setinputtype(inputtype.type_class_text); holder.text_value.setsingleline(false); holder.text_value.setminlines(3); holder.edit_value.setsingleline(false); holder.edit_value.setminlines(3); } else{ holder.text_value.setinputtype(inputtype.type_class_text); holder.edit_value.setinputtype(inputtype.type_class_text); holder.text_value.setsingleline(true); holder.text_value.setlines(1); holder.edit_value.setsingleline(true); holder.edit_value.setlines(1); } if(item.istext()){ holder.btn.setvisibility(view.gone); //是否可编辑 if(!item.isupdate()){ holder.text_value.setbackgrounddrawable(getresources().getdrawable(r.drawable.touming)); holder.text_value.setenabled(false); holder.text_value.setfocusable(false); holder.text_value.setfocusableintouchmode(false); holder.text_value.setvisibility(view.visible); holder.edit_value.setvisibility(view.gone); }else{ holder.edit_value.setenabled(true); holder.edit_value.setfocusable(true); holder.edit_value.setfocusableintouchmode(true); holder.edit_value.setvisibility(view.visible); holder.text_value.setvisibility(view.gone); } }else if(item.islist()){ //下拉框 holder.btn.setvisibility(view.visible); if(!item.isupdate()){ holder.btn.setvisibility(view.gone); }else{ holder.btn.setvisibility(view.visible); } holder.edit_value.setvisibility(view.gone); holder.text_value.setvisibility(view.visible); holder.btn.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { showgroupposition = groupposition; showchildposition = childposition; intent intent = new intent(update.this, querydict.class); intent.putextra("class", constvars.datasource_list_dict); intent.putextra("action", constvars.ln_dict_action); intent.putextra(constvars.dict_item, item); intent.putextra("fromclass", update.this.getcomponentname().getclassname()); startactivityforresult(intent, 1); } }); }else if (child.get(groupposition).get(childposition).isdate()) { holder.btn.setvisibility(view.visible); if(!item.isupdate()){ holder.btn.setvisibility(view.gone); }else{ holder.btn.setvisibility(view.visible); } holder.edit_value.setvisibility(view.gone); holder.text_value.setvisibility(view.visible); holder.btn.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { showgroupposition = groupposition; showchildposition = childposition; intent intent=new intent(update.this,dtpickerdialog.class); intent.putextra("fromclass", update.this.getcomponentname().getclassname()); update.this.startactivityforresult(intent, 2); } }); }else if(child.get(groupposition).get(childposition).isvitual()){ holder.btn.setvisibility(view.visible); if(!item.isupdate()){ holder.btn.setvisibility(view.gone); }else{ holder.btn.setvisibility(view.visible); } if(child.get(groupposition).get(childposition).getcolumntype().equalsignorecase("virtualbutton") && child.get(groupposition).get(childposition).getlinkobject().getfuncname().equals("showfilefield")){ if(item.getvalue()!=null&&!"".equals(item.getvalue())){ holder.btn.setvisibility(view.visible); }else{ holder.btn.setvisibility(view.gone); } } holder.edit_value.setvisibility(view.gone); holder.text_value.setvisibility(view.visible); holder.text_value.settext(item.getname()); holder.btn.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { if(child.get(groupposition).get(childposition).getcolumntype().equalsignorecase("userpicker")){ intent intent=new intent(update.this, userselected.class); showchildposition=childposition; showgroupposition=groupposition; intent.putextra(constvars.userchoice_selectuser, item); intent.putextra("type", "13"); //
startactivityforresult(intent, 10); }else if(child.get(groupposition).get(childposition).getcolumntype().equalsignorecase("virtualbutton") && child.get(groupposition).get(childposition).getlinkobject().getfuncname().equals("showfilefield")){//附件 intent intent=new intent(update.this, attachment.class); intent.putextra("id", item.getvalue());
startactivity(intent); } } }); } return convertview; } @override public boolean ischildselectable(int groupposition, int childposition) { return true; } }
Comments
Post a Comment