ListView內容變化後的動態刷新
基本知識點:
1.更新適配器Adapter數據源
2.調用適配器Adapter的刷新方法notifyDataSetChanged()
首先需要定義ListView和對應適配器Adapter:
//用於顯示用戶列表的ListView
private ListView userList = null;
//用戶列表userList對應的適配器
SimpleAdapter simpleAdapter = null;
//用戶列表userList對應的適配器的數據源
List<Map<String,?>> dataSimpleAdapter = new ArrayList<Map<String,?>>();
//用戶列表ListView行佈局元素
int[] userListViewTo = null;
//用戶列表ListView行佈局元素對應的適配器key值
String[] userListViewFrom = null;
/**
* 初始化用戶列表組件適配器.
*/
public void initUserListViewAdapter(){
userList = (ListView)findViewById(R.id.user_list_users);
userListViewTo = new int[]{R.id.user_list_item_user_id,
R.id.user_list_item_user_Login_id,
R.id.user_list_item_user_login_pass};
int len = userListViewTo.length;
userListViewFrom = new String[len];
for(int i=0;i<len;i++){
userListViewFrom[i]=String.valueOf(i);
}
}
然後配置ListView的適配器
Adapter:
/**
* 顯示ListView組件.
*/
public void showListView(){
//用戶列表ListView佈局文件
int resource = R.layout.user_list_item;
//準備適配器數據源
createAdapterData();
//綁定適配器並返回
simpleAdapter = new SimpleAdapter(context, dataSimpleAdapter, resource, userListViewFrom, userListViewTo);
//設置ListView組件的適配器.
userList.setAdapter(simpleAdapter);
}
/**
* 生成適配器數據源
* @param itemCount
*/
public void createAdapterData(){
//準備適配器內容
dataSimpleAdapter.clear();//確保數據源是空的
int itemLength = 3;
for(int i=0;i<itemLength;i++){
Map<String,Object> map = new HashMap<String,Object>();
map.put(userListViewFrom[0], "數據列1-"+i);
map.put(userListViewFrom[1], "數據列2-"+i);
map.put(userListViewFrom[2], "數據列3-"+i);
dataSimpleAdapter.add(map);
}
}
最後,只要更新適配器simpleAdapter的數據源dataSimpleAdapter,然後執行方法:
//刷新listview
simpleAdapter.notifyDataSetChanged();