android listfragment - java.lang.IllegalStateException: Content view not yet created -
the "mmatchadapter" initialize @ oncreate, null in "setcursor", why? listfragment tab of tabhost, use display list. want change adapter in setcursor display other list, occur error @ line mmatchadapter.changecursor(c); because mmatchadapter null, why? when getlistview above line,
public class recentslistfragment extends listfragment implements onsetrecentscontactscursor { public final static string tag = "recentslistfragment"; @override public void onviewcreated(view view, bundle savedinstancestate) { // todo auto-generated method stub log.d(tag, "---------> onviewcreated "); mlistview = getlistview(); log.d(tag, "onviewcreated------mlistview = " + mlistview); mviewcreated = true; setlistshown(false); super.onviewcreated(view, savedinstancestate); } @override public void ondestroyview() { // todo auto-generated method stub log.d(tag, "---------> ondestroyview "); mviewcreated = false; super.ondestroyview(); } @override public void onlistitemclick(listview l, view v, int pos, long id) { // todo auto-generated method stub cursor cursor; listadapter adapter = getlistadapter(); if (adapter == mlogsadapter){ cursor = (cursor)mlogsadapter.getitem(pos); }else if (adapter == mmatchadapter){ cursor = (cursor)mmatchadapter.getitem(pos); } super.onlistitemclick(l, v, pos, id); } @override public void onattach(activity activity) { // todo auto-generated method stub log.d(tag, "------>onattach"); mactivity = activity; super.onattach(activity); } @override public void oncreate(bundle savedinstancestate) { // todo auto-generated method stub log.d(tag, "---------> oncreate "); mnumberquery = numberlocalquery.getinstance(mactivity.getapplicationcontext()); mqueryhandler = new cursorqueryhandler(mactivity.getcontentresolver()); mphotoloader = new contactphotoloader(mactivity); mlogsadapter = new bbkrecentcallsadapter(mactivity, mphotoloader, mnumberquery); mmatchadapter = new bbkdialermatchlistadapter(mactivity, mphotoloader, mnumberquery); super.oncreate(savedinstancestate); } @override public void onstart() { // todo auto-generated method stub mcallschanged = true; log.d(tag, "---------> onstart "); setlistadapter(mlogsadapter); mlogsadapter.clearcache(); startquery(); super.onstart(); } @override public void onstop() { // todo auto-generated method stub mcallschanged = false; log.d(tag, "---------> onstop "); if (null != mqueryhandler){ mqueryhandler.canceloperation(curosr_query_token_calls); } super.onstop(); } @override public void onresume() { // todo auto-generated method stub log.d(tag, "---------> onresume "); boolean is24hour = dateformat.is24hourformat(mactivity); if (null != mlogsadapter){ mlogsadapter.set24hour(is24hour); } if (null != mmatchadapter){ mmatchadapter.set24hour(is24hour); } mismatching = false; super.onresume(); } private void startquery() { log.d(tag, "---------> startquery "); if(mcallschanged) { log.d(tag, "start query call_log database"); mcallschanged = false; mqueryhandler.canceloperation(curosr_query_token_calls); mqueryhandler.startquery(curosr_query_token_calls, null, calls.content_uri, recentcallslistactivity.call_log_projection, null, null, calls.default_sort_order); }else if(mlogsadapter != null && (mlogsadapter.getcursor() != null)) { mlogsadapter.notifydatasetchanged(); } } @override public void onactivitycreated(bundle savedinstancestate) { // todo auto-generated method stub log.d(tag, "---------> onactivitycreated "); super.onactivitycreated(savedinstancestate); } @override public void ondestroy() { // todo auto-generated method stub log.d(tag, "---------> ondestroy "); if (null != mlogsadapter){ mlogsadapter.clearcache(); mlogsadapter.changecursor(null); } if (null != mmatchadapter){ mmatchadapter.changecursor(null); } super.ondestroy(); } @override public void ondetach() { // todo auto-generated method stub log.d(tag, "---------> ondetach "); super.ondetach(); } @override public void setcursor(cursor c) { // todo auto-generated method stub log.d(tag, "====setcursor======mviewcreated====" + mviewcreated); log.d(tag, "--------->mlistview = " + mlistview); if (null != c && c.getcount() > 0){ setlistadapter(mmatchadapter); } mmatchadapter.changecursor(c); } }
Comments
Post a Comment