關於Listview顯示不同條目的兩種方法

==============第一種=============腹寫adapter中的這兩個方法 
/**
     *根據position來返回不同的條目類型
     *返回的是你自己定義的這個條目所對應的類型
     */
    @Override
    public int getItemViewType(int position) { 
  return super.getItemViewType(position);
    }
--------------------------------------------------------
/**
*  返回集中類型的條目
*/
 public int getViewTypeCount() {

    }


1,覆寫了上面方法之後在getView()中  
2,通過 int   type = getItemViewType(position); 獲得當前條目所對應的類型type,
3,通過switch(type) 比對自己定義的條目所對應的常量,然後初始化不同的convertview


然後進行數據的填充   就OK啦·。。·。·------
----------------- 如果需要刪除其中的條目,這個getViewTypeCount 的數值應該比實際數值最少大1吧  - ,否則刪除最後一個條目的時候 會下標越界·。。·。·。·



=====第二種================= 華麗的分割線==========================================================


其實上面這種方法有一些隱形的問題,比如 空指針問題,或者當你想更改其中某個條目的backgroundResource  然後你點擊其他條目,讓這個條目恢復到默認狀態的時候,上面這種方法可能就會有些複雜  而且由於邏輯判斷過多,可能會導致延遲


  1,儘量能寫在一個item中,
  2,在getView中自己去根據position或者其他條件來判斷  然後進行對應 gone  visible
  3,然後進行對應的操作;


這樣做的好處: --------------------------------1,避免過多的判斷           2,代碼簡單更容易控制,避免空指針,更適合一些邏輯處理(比如點擊效果的實現)
                                                
          推薦使用第二種·。。·。·比如聊天的對話列表

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