我已经尝试使用ListView.indexOfChild(View视图)方法来检查ListView是否包含指定的标题视图,但有时当ListView实际包含指定的标题时它返回-1.有没有更好的方法来检查这个?
MH.*_*MH. 17
如果使用'header'表示使用其中一种addHeaderView(...)
方法添加的实际标题,则只需使用即可检索添加的标题数getHeaderViewsCount()
.
或者,如果我没记错的话,如果它包含页眉和/或页脚,ListView
则将其适配器包装在HeaderViewListAdapter
其中.您可以使用它getHeadersCount()
来检索与上面相同的数字.
编辑:如果要检查是否添加了特定标头,您应该能够查询该标头HeaderViewListAdapter
.您需要某种标准来检查.
例如,如果在你的3头ListView
,您可以通过前三个项目迭代(你也许可以抓住他们直接从HeaderListViewAdapter
,或使用ListView
的getItemAtPosition(...)
方法),并查看是否有标准相匹配.执行此"匹配"的最简单方法可能是使用addHeaderView(...)
也采用Object
参数的方法添加标头.您可以提供基本上可以区分多个标头的任何内容,显然只要数据对象不同.例如,你可以传入一个字符串.
有了这些数据,您可以调用getItem(...)
/ getItemAtPosition(...)
获取前3个位置并检查返回的内容.对数据使用String的好处是每个Java对象都实现了一个toString()
方法,然后您可以利用该方法进行直接.equals(..)
比较.
或者,您可以使用反射来获取实际mHeaderViewInfos
成员变量(它只是一个ArrayList<ListView.FixedViewInfo>
),并将其用于条件逻辑.
归档时间: |
|
查看次数: |
5703 次 |
最近记录: |