ListView動態刷新

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();


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章