android下拉列表有时会崩溃,如果看到日志打印错误,如下所示:
12-2814336017336035.772: e/Android runtime (9922 ) :
ava.lang.illegalstateexception 3360 thecontentoftheadapterhaschangedbutlistviewdidnotreceiveanotification.makesuretheconeconed kgroundthread,butonlyfromtheuithread.[ in listview (2131034452,class custom _ refresh view.listview frame (with适配器) ]
相关使用代码:
publicclassscalingauditingmainactivityextendsfragmentactivityimplements
privatelisttotailist=new ArrayList (;
privatehandlerhandler=new handler {
publicvoidhandlemessage (Android.OS.message msg )。
交换机(msg.what ) {
case SETDATA:
mscalingauditingadapter.notifydatasetchanged (
mBegin='0';
布雷克;
case ERROR:
布雷克;
默认:
布雷克;
}
(;
(;
@Override
protectedvoidoncreate (边界维护实例state )。
super.oncreate (savedinstancestate;
setcontentview (r.layout.activity _ scaling _ auditing _ main );
}
@Override
保护性void on resume
boolean netok=isnetok (scalingauditingmainactivity.this;
if (网络) {
//网络状态良好,显示加载对话框
initView (;
} else {
//网络状态错误,未显示加载对话框
}
super.onResume (;
}
私密void init view (
pulltorefreshlistview _ fragment VP _ info=(listview frame ) findviewbyid (r.id.scaling _ auditing _ pu pu pu pu lltorefrefrefreshlieshlion
mscalingauditingadapter=newscalingauditingadapter (tota ilist,
MSCalingauditingadapter!=空) {
log.e((***11 )、(****11 );
plltorefreshlistview _ fragment VP _ info
. set adapter (mscalingauditingadapter;
} else {
log.e('te**** ',' te*** ' );
}
pulltorefreshlistview _ fragment VP _ info.setpulloadenable (true;
pulltorefreshlistview _ fragment VP _ info.setxlistviewlistener (this;
plltorefreshlistview _ fragment VP _ info
. setonitemclicklistener (新监听器) );
}
私有语音加载
pulltorefreshlistview _ fragment VP _ info.stop refresh (;
plltorefreshlistview _ fragment VP _ info.stoploadmore (;
}
@Override
公共void on refresh () /下拉刷新
handler.post delayed (新运行nable () ) )。
@Override
公共void run (}
开始=刷新CNT;
totaiList.clear (;
injsondata('0);
onLoad (;
}
(2000 );
}
@Override
公共语音加载模式() () /上拉
handler.post delayed (新运行nable () ) )。
@Override
公共void run (}
k=integer.parseint(curcount );
if (k=integer.parseint (总计数) ) }
toast.maketext (scalingauditingmainactivity.this,
r.string.listview _ header _ hint _ end,
toast.Length_short(.show );
} else {
mBegin=k ' ';
injsondata(mbegin;
}
onLoad (;
}
(2000 );
}
publicvoidinjsondata (finalstringstart ) {
new Thread () }
公共void run (}
totaiList.clear (;
handler.sendemptymessage (setdata;
//网络请求结束后,加入scalingAuditingEntity
//然后加入list
tota ilist.add (scalingauditingentity;
handler.sendemptymessage (setdata;
}
}.start (;
}
}