[Android] ListView notifyDataSetChanged更新错误

时间:2013-06-03 01:46:35

标签: android listview

请查看我的代码,当我更新代码时,它会出错。

//definition
private ArrayList<HashMap<String, Object>> item;
private SimpleAdapter listItemAdapter;
//initialization

listItemAdapter = new SimpleAdapter(this, item,R.layout.list_item, 
new String[] { "name", "id", "houseNum","meterValue" }, 
new int[] { R.id.item_name,R.id.item_id, R.id.item_house_num,R.id.item_meter_value });
readingMeterList.setAdapter(listItemAdapter);
...

//definition
HashMap<String, Object> map = Activity.this.item.get(index);
map.put("meterValue", String.format("%.2f", meterValue));
item.set(index, map);
listItemAdapter.notifyDataSetChanged();

,错误消息为:click here to see the big picture

任何人都知道如何解决这个问题,请帮助我,谢谢你。

1 个答案:

答案 0 :(得分:2)

listItemAdapter.notifyDataSetChanged();

这段代码应该放在runOnUiThread()中。 您只能从UI线程调用受UI影响的方法。

runOnUIThread(new Runnable(){
// override method
// and put your code there.
})