此错误经常显示“适配器的内容已更改,但ListView
未收到通知。请确保未从后台线程修改适配器的内容,但仅从UI线程修改。 “
使用NewsList
从API获取JSON
以及其他图片和广告。
class LongOperation extends AsyncTask<String, Void, String> {
protected void onPreExecute() {
}
protected String doInBackground(String... params) {
try {
AdSpotList.add(sched);
Image_view_List.add(sched);
NewsList.add(sched);
handler.sendEmptyMessage(1);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String result) {
}
}
Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 1) {
if (NewsList.size() != 0) {
if (NewsList.size() <= 5) {
adapter = new CustomAdapter(getActivity(),
Image_view_List, NewsList, AdSpotList, res);
lv_daily_summary.setAdapter(adapter);
} else {
getActivity().runOnUiThread(new Runnable() {
public void run() {
lv_daily_summary.invalidateViews();
adapter.notifyDataSetChanged();
}
});
}
}
}
}
};
这个完整的页面位于片段上。