【发布时间】:2013-02-25 08:01:42
【问题描述】:
我实际上是通过填充数据库中的项目来创建一个 ListView。
当到达列表视图的末尾时,我会填充更多项目。现在,我想要基于从数据库返回的值的 ListView 的分隔符。如果数据库的两个连续值相同,我希望它们用细线分隔,如果不是粗线。
我尝试像这样通过适配器设置它们
if (convertView == null) {
holder = new ViewHolder();
if (eventSource.get(position).equalsIgnoreCase("asdsadas")
&& eventSource.get(position + 1).equalsIgnoreCase(
"fdgdfgfd")
|| eventSource.get(position).equalsIgnoreCase(
"dfgdfgdfg")
&& eventSource.get(position + 1).equalsIgnoreCase(
"jgghjhhgg")) {
convertView = mInflater.inflate(R.layout.list_adapter, null);
} else {
convertView = mInflater.inflate(R.layout.list_adapterthinline,
null);
}
我正在根据条件扩展新布局。它第一次工作,但在我向下滚动并出现视图更改后。一切都搞混了。
我也尝试在 Activity 中设置分隔线高度,就像这样,我也在 onCreate 和 onScroll 监听器中调用了“setdivider”方法。
public void setdivider() {
// TODO Auto-generated method stub
for (int i = 0; i < listSource.size() - 1; i++) {
if (!listSource.get(i).equalsIgnoreCase(
listSource.get(i + 1))) {
Log.v("inside not equals", "become smalllllllllllllllll");
list.setDivider(red);
list.setDividerHeight(5);
} else if (listSource.get(i).equalsIgnoreCase(
listSource.get(i + 1))) {
Log.v("inside equals", "become bigggggggggggg");
list.setDivider(blue);
list.setDividerHeight(10);
}
}
}
但是这里即使两个日志 cmets 都显示在 LogCat 上,但列表中只设置了一个分隔符。
请告诉我哪里出错了,或者建议一些其他方法(如果有的话)。
【问题讨论】: