我有一个可行的ExpandableListView,但有一个例外。
ExpandableListView就像我加载组(带有我的尺寸文本)和子项(带有我的对象文本)一样,并在内部处理它们。如果选择了一个孩子,我就会被打电话。但不是介于两者之间。
我永远不会更新它,我做了一个this.recreate();当数据更改时,ExpandableListView始终具有相同的数据。我只是在创建后回调时按位置(使用我的DimensionItems文本)加载一次,创建textView并在其上设置文本。
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.drawer_right_second, null);
TextView text = (TextView) convertView.findViewById(R.id.eventsListEventRowText);
text.setText(DimensionItems[groupPosition].title);
if( Commands.AccountingObject.getObjectTotals(Commands.AccountingDimension.getDimensionByPositions(groupPosition))==0)
convertView.setBackgroundColor(Color.DKGRAY);
}
return convertView;
}
问题症状
如果我选择并获得扩展的组项目(将我的手指放在组项目上,以便我可以看到孩子们),则以下组项目无序。
我有八个组项0,1,2,3,4,5,6,7
如果我用两个孩子扩展第3组,我会得到一个0,1,2,3,c1,c2,6,7,5,4,真奇怪的列表?
我的代码中没有地方可以在扩展阶段进行交互,它在我的代码之外的ExpandableListView.Java中是内部的,并且调试器拒绝在其中放置断点。实际上很难跟踪,并且在没有干扰的情况下,我可以在我的代码中放置断点的入口点。
我有什么需要做的,或者它是ExpandableListView库中的错误?
答案 0 :(得分:0)
这是代码示例中的重写问题
经过长时间的了解很多关于ExpandableListViews并没有任何帮助,这一切都像往常一样,是我鼻子前面的一个简单可怕的错误。有一个重写问题,括号内的一些代码应该在外面(每次都运行)。我有点尴尬。
它应该看起来像这样,不需要任何ID,只需要位置。
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.drawer_right_second, null);
}
TextView text = (TextView) convertView.findViewById(R.id.eventsListEventRowText);
text.setText(DimensionItems[groupPosition].title);
if( Commands.AccountingObject.getObjectTotals(Commands.AccountingDimension.getDimensionByPositions(groupPosition))==0)
convertView.setBackgroundColor(Color.DKGRAY);
else
convertView.setBackgroundColor(Color.BLUE);
return convertView;
}