標籤:
ListView內容變化後的動態重新整理
基本知識點:
1.更新適配器Adapter資料來源
2.調用適配器Adapter的重新整理方法notifyDataSetChanged()
首先需要定義ListView和對應適配器Adapter:
//用於顯示使用者列表的ListViewprivate 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,然後執行方法:
//重新整理listviewsimpleAdapter.notifyDataSetChanged();
Android ListView內容變化後的動態重新整理