您的位置:首页 > 其它

关于Listview显示不同条目的两种方法

2013-04-15 22:41 253 查看
==============第一种=============腹写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,代码简单更容易控制,避免空指针,更适合一些逻辑处理(比如点击效果的实现)

                                                

          推荐使用第二种·。。·。·比如聊天的对话列表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐