android adapter.notifyDataSetChanged()失效
编写了一个GridView更新的程序,但是发现adapter.notifyDataSetChanged()没有把更新后的数据加载到gridview中
部分代码如下:
我的子线程的操作:
private void getVisitorViewData() {
new Thread(new Runnable() {
@Override
public void run() {
Utils.copyFilesFassets(getActivity(), "test", Constant.FOLDER_NAME, Constant.TYPE_VISITOR);//这个是将图片保存到外存中
//发消息给主线程,请求更新gridview
Message message = new Message();
message.arg1 = Constant.MESSAGE_SAVE_FILE_FINISH;
mHandler.sendMessage(message);
}
}).start();
}
---------------------------------------------------------------------------------------------------------------------------------------------------------
Handler代码如下:
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Log.d("mingzhu", "---- handleMessage ----");
switch (msg.arg1) {
case Constant.MESSAGE_SAVE_FILE_FINISH:
lists = DbUtils.getMainViewBeans(getActivity(), Constant.TYPE_VISITOR);
Log.d("mingzhu", "get list size : " + lists.size());
for(MainViewBean bean : lists) {
Log.d("mingzhu", "--------------------------");
Log.d("mingzhu", "name : " + bean.getName());
Log.d("mingzhu", "path : " + bean.getPath());
Log.d("mingzhu", "index : " + bean.getIndex());
}
if(adapter != null) {
Log.d("mingzhu", " 1 ");
adapter.notifyDataSetChanged();
} else {
Log.d("mingzhu", " 2 ");
adapter = new VisitorGirdViewAdapter(VisitorFragment.this.getActivity(), lists);
gridview.setAdapter(adapter);
}
break;
default:
break;
}
}
};
---------------------------------------------------------------------------------------------------------------------------------------------------------
打印出的Log如下:
09-23 16:49:11.308: D/mingzhu(2531): lists size : 0
09-23 16:49:11.312: D/mingzhu(2531): --- initGridView ---
09-23 16:49:11.527: D/mingzhu(2531): ---- handleMessage ----
09-23 16:49:11.529: D/mingzhu(2531): get list size : 5
09-23 16:49:11.530: D/mingzhu(2531): --------------------------
09-23 16:49:11.530: D/mingzhu(2531): name : ceshi1
09-23 16:49:11.530: D/mingzhu(2531): path : /storage/emulated/0/Gunqu/ceshi1.jpg
09-23 16:49:11.530: D/mingzhu(2531): index : 1
09-23 16:49:11.530: D/mingzhu(2531): --------------------------
09-23 16:49:11.530: D/mingzhu(2531): name : ceshi2
09-23 16:49:11.530: D/mingzhu(2531): path : /storage/emulated/0/Gunqu/ceshi2.png
09-23 16:49:11.530: D/mingzhu(2531): index : 2
09-23 16:49:11.530: D/mingzhu(2531): --------------------------
09-23 16:49:11.530: D/mingzhu(2531): name : ceshi3
09-23 16:49:11.530: D/mingzhu(2531): path : /storage/emulated/0/Gunqu/ceshi3.jpg
09-23 16:49:11.530: D/mingzhu(2531): index : 3
09-23 16:49:11.530: D/mingzhu(2531): --------------------------
09-23 16:49:11.530: D/mingzhu(2531): name : ceshi4
09-23 16:49:11.530: D/mingzhu(2531): path : /storage/emulated/0/Gunqu/ceshi4.jpg
09-23 16:49:11.530: D/mingzhu(2531): index : 4
09-23 16:49:11.530: D/mingzhu(2531): --------------------------
09-23 16:49:11.531: D/mingzhu(2531): name : ceshi5
09-23 16:49:11.531: D/mingzhu(2531): path : /storage/emulated/0/Gunqu/ceshi5.jpg
09-23 16:49:11.531: D/mingzhu(2531): index : 5
09-23 16:49:11.531: D/mingzhu(2531): 1