例如,我的自定义 ExpandableListAdapter 扩展了 BaseExpandableListAdapter,它有两个组。
public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
ViewGroup parent) {
if (convertView == null) {
convertView = infalInflater.inflate(R.layout.rowgroup, parent, false);
}
s++;
Log.d("Index", String.valueOf(s));
return convertView;
}
第一个问题:为什么这段代码在 LogCat 中总是返回 Index = 1, Index = 2, Index = 3, ..., Index = 10?
public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
ViewGroup parent) {
if (convertView == null) {
s++;
Log.d("Index", String.valueOf(s));
convertView = infalInflater.inflate(R.layout.rowgroup, parent, false);
}
return convertView;
}
第二个问题:为什么这段代码会在LogCat中返回Index = 1, Index = 2, Index = 3?我只有2组,不是3组。如果我再添加一组,Index值将是4。我在convertView = infalInflater.inflate(R.layout.rowgroup, parent, false);设置断点; 行,我看到 groupPosition==0 在开头和结尾执行了 getGroupView。
这是我的错误还是应该的?我想了解为什么会这样 =)
感谢您的回答!
最佳答案
我想我找到了答案 here =) 在那之前我不明白它是如何工作的。
关于Android:ListView 的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896612/