Мне не удалось заставить notifyDataSetChanged () работать над обновлением моего SimpleAdapter, поэтому вместо этого я попытался сначала удалить все представления, которые были присоединены к родительскому макету, с помощью removeAllViews (), затем добавить ListView, и это сработало, что позволило мне обновить пользовательский интерфейс:
LinearLayout results = (LinearLayout)findViewById(R.id.results);
ListView lv = new ListView(this);
ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
SimpleAdapter adapter = new SimpleAdapter( this, list, R.layout.directory_row,
new String[] { "name", "dept" }, new int[] { R.id.name, R.id.dept } );
for (...) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", name);
map.put("dept", dept);
list.add(map);
}
lv.setAdapter(adapter);
results.removeAllViews();
results.addView(lv);