首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带节头问题的ListView

带节头问题的ListView
EN

Stack Overflow用户
提问于 2010-09-06 03:20:59
回答 3查看 5.2K关注 0票数 2

嗨,我正在为我的listView添加节标题,在web上很少有方法。因为我使用simpleCursorAdapter来管理我的listView,所以我采用了phil的方法。http://thebogles.com/blog/2010/02/section-headers-for-android-listviews/

错误发生在代码的这一部分:

代码语言:javascript
运行
复制
    listAdapter.setViewBinder( new SimpleCursorAdapter.ViewBinder()
    {
        public boolean setViewValue(View view, Cursor cursor, int
                                   columnIndex)
        {
              if (columnIndex == nDateIndex) {
                if (isHeaderVisible(cursor)) {
                    view.setVisibility(View.VISIBLE);
                     prevDate = dateString;
                    ((TextView) view).setText(dateString);
                } else {
                    ((TextView) view).setText("");
                    view.setVisibility(View.GONE);
                }
                return true;
            }
            return false;
        }
    });

这是LogCat展示了它们如何进行比较,而我向上滚动列表:

代码语言:javascript
运行
复制
09-06 11:06:43.460: INFO/System.out(563): Sun, 05 Sep 2010 11:41:53  (dateString)
09-06 11:06:43.460: INFO/System.out(563): Wed, 01 Sep 2010 21:58:06  (preDate)
09-06 11:06:43.460: INFO/System.out(563): 120.0                      (record)
09-06 11:06:43.820: INFO/System.out(563): Sun, 05 Sep 2010 17:47:26  (dateString)
09-06 11:06:43.820: INFO/System.out(563): Sun, 05 Sep 2010 11:41:53  (preDate)
09-06 11:06:43.820: INFO/System.out(563): 112.0                      (record)

正确的输出应该是:

Sun,2010年9月5日

112

代码语言:javascript
运行
复制
  **120** 

但当我向上滚动时,setViewValue首先调用120并与preDate(如上图所示)进行比较,结果如下:

Sun,2010年9月5日

代码语言:javascript
运行
复制
 **112**
代码语言:javascript
运行
复制
 **Sun, 05 Sep 2010**
代码语言:javascript
运行
复制
 **120** 

那么,在创建标头之后,如何使节标头修复呢?为什么在滚动时调用setViewBinder?对此有什么建议吗?谢谢!

EN

回答 3

Stack Overflow用户

发布于 2011-06-13 00:09:17

您还可以在这里查看非常简单的项目:http://code.google.com/p/android-section-list/。灵感来自iOS的章节列表(在iOS中是从盒子里拿出来的)。

票数 3
EN

Stack Overflow用户

发布于 2011-03-29 08:57:30

请在这里看到带有部分标题的ListView小部件,这可能会对您有所帮助。它的工作原理类似于默认的联系人应用程序。

http://code.google.com/p/android-amazing-listview/

票数 2
EN

Stack Overflow用户

发布于 2010-09-06 09:42:11

,那么在创建标头之后,如何使节标头得到修正呢?

isHeaderVisible()正常工作吧,我想。据我所知,这就是你的问题所在。

为什么在滚动时调用setViewBinder?

因为行在滚动时会被回收。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3648840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档