我实际上是通过填充数据库中的项目来创建 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);
}
}
}
但是这里即使两个日志注释都显示在 LogCat 上,但列表中只设置了一个分隔符。
请告诉我哪里出错了,或者建议一些其他方法,如果有的话。