layout inflater - Android LayoutInflater Issue -
here getview method of class downloadableprojectsfromwebadapter:
@override public view getview(int position, view convertview, viewgroup parent) { view row = convertview; downloadableprojectsfromwebholder holder = null; if(row == null) { layoutinflater inflater = ((activity)context).getlayoutinflater(); row = inflater.inflate(layoutresourceid, parent, false); holder = new downloadableprojectsfromwebholder(); holder.txtpid = (textview)row.findviewbyid(r.id.tvallprojectspid); holder.txtname = (textview)row.findviewbyid(r.id.tvallprojectsname); holder.txtshareable = (textview)row.findviewbyid(r.id.tvallprojectsshareable); row.settag(holder); } else { holder = (downloadableprojectsfromwebholder)row.gettag(); } string share_text; allprojectlistinfo li = data.get(position); holder.txtpid.settext("id: " + integer.tostring(li.getid())); holder.txtname.settext(li.getname()); if (li.getshareable()){ share_text = "public project"; } else { share_text = "private project"; } holder.txtshareable.settext(share_text); return row; }
the lines causing issue:
35: layoutinflater inflater = ((activity)context).getlayoutinflater(); 36: row = inflater.inflate(layoutresourceid, parent, false);
here info logcat:
fatal exception: main java.lang.classcastexception: android.app.contextimpl cannot cast android.app.activity @ com.ericbrian.tnc.conproforandroid.downloadableprojectsfromwebadapter.getview(downloadableprojectsfromwebadapter.java:36) @ android.widget.abslistview.obtainview(abslistview.java:2033) @ android.widget.listview.makeandaddview(listview.java:1772) @ android.widget.listview.filldown(listview.java:672) @ android.widget.listview.fillfromtop(listview.java:732) @ android.widget.listview.layoutchildren(listview.java:1625) @ android.widget.abslistview.onlayout(abslistview.java:1863) @ android.view.view.layout(view.java:11278) @ android.view.viewgroup.layout(viewgroup.java:4224) @ android.widget.linearlayout.setchildframe(linearlayout.java:1628) @ android.widget.linearlayout.layoutvertical(linearlayout.java:1486) @ android.widget.linearlayout.onlayout(linearlayout.java:1399) @ android.view.view.layout(view.java:11278) @ android.view.viewgroup.layout(viewgroup.java:4224) @ android.widget.framelayout.onlayout(framelayout.java:431) @ android.view.view.layout(view.java:11278) @ android.view.viewgroup.layout(viewgroup.java:4224) @ android.widget.linearlayout.setchildframe(linearlayout.java:1628) @ android.widget.linearlayout.layoutvertical(linearlayout.java:1486) @ android.widget.linearlayout.onlayout(linearlayout.java:1399) @ android.view.view.layout(view.java:11278) @ android.view.viewgroup.layout(viewgroup.java:4224) @ android.widget.framelayout.onlayout(framelayout.java:431) @ android.view.view.layout(view.java:11278) @ android.view.viewgroup.layout(viewgroup.java:4224) @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1489) @ android.view.viewrootimpl.handlemessage(viewrootimpl.java:2442) @ android.os.handler.dispatchmessage(handler.java:99) @ android.os.looper.loop(looper.java:137) @ android.app.activitythread.main(activitythread.java:4424) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:511) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) @ dalvik.system.nativestart.main(native method)
here calling adapter:
downloadableprojectsfromwebadapter adapter = new downloadableprojectsfromwebadapter( getbasecontext(), r.layout.all_projects_listview_item, results);
and finally, results definition:
list<allprojectlistinfo> results
now, copied code place use custom adapter. however, 1 works fine. don't understand why 1 doesn't.
any appreciated.
thanks.
instead of (which wrong):
layoutinflater inflater = ((activity)context).getlayoutinflater();
do this:
layoutinflater inflater = layoutinflater.from(context);
Comments
Post a Comment