oschina 2.x疑问

heichong 发布于 2015/06/05 09:22
阅读 115
收藏 0

@火蚁 你好,想跟你请教个问题:

我是android新手,最近在看oschina 2.x的源码进行学习

ListBaseAdapter  中getCount()方法:

@Override
    public int getCount() {
        switch (getState()) {
        case STATE_EMPTY_ITEM:
            return getDataSize() + 1;
        case STATE_NETWORK_ERROR:
        case STATE_LOAD_MORE:
            return getDataSize() + 1;
        case STATE_NO_DATA:
            return 1;
        case STATE_NO_MORE:
            return getDataSize() + 1;
        case STATE_LESS_ONE_PAGE:
            return getDataSize();
        default:
            break;
        }
        return getDataSize();
    }



不太明白,为什么这几种状态(STATE_EMPTY_ITEM,STATE_LOAD_MORE等)datasize要加1呢?


加载中
0
火蚁
火蚁
这种方式就是把列表的状态放到适配器里面做了,如列表数据为空、加载更多、已加载全部这些状态,这种方式比较多局限性,不太建议采用这种方式
heichong
heichong
回复 @火蚁 : 看了几天,也试着写了下,总算明白了,多谢了
火蚁
火蚁
回复 @heichong : 我的建议是放在listview中判断他的状态,或者是model封装一层
heichong
heichong
多谢您的回复,我看 BaseListFragment 也有一些列表的状态,感觉和适配器中的状态有部分重复了,不知道用哪些更好的方式来处理这些状态?
返回顶部
顶部