Java ExpandableListView组项展开后出现无序
我有一个ExpandableListView,它运行良好,只有一个例外。 ExpandableListView的工作原理类似于我加载组(带有维度文本)和子项(带有对象文本),并在内部处理它们。如果选择了一个孩子,我会被呼叫。但不是在两者之间 我从不更新它,我做了一个类似的操作。重新创建();当数据发生更改时,ExpandableListView始终具有相同的数据。在创建文本视图并在其上设置文本后被调用时,我只需逐个位置加载它一次(使用我的DimensionItems文本) 问题症状 如果我选择并展开一个组项目(将手指放在组项目上,以便我可以看到子项),则以下组项目处于无序状态 我有八个分组项目0,1,2,3,4,5,6,7 如果我用两个孩子展开第三组,我会有一个0,1,2,3,c1,c2,6,7,5,4的列表,奇数 在我的代码中没有任何地方可以在扩展阶段进行交互,它都是在ExpandableListView.Java中的内部,在我的代码之外,调试器拒绝在其中设置断点。这是很难跟踪的,并且当不受干扰时,没有入口点可以在代码中放置断点Java ExpandableListView组项展开后出现无序,java,android,expandablelistview,Java,Android,Expandablelistview,我有一个ExpandableListView,它运行良好,只有一个例外。 ExpandableListView的工作原理类似于我加载组(带有维度文本)和子项(带有对象文本),并在内部处理它们。如果选择了一个孩子,我会被呼叫。但不是在两者之间 我从不更新它,我做了一个类似的操作。重新创建();当数据发生更改时,ExpandableListView始终具有相同的数据。在创建文本视图并在其上设置文本后被调用时,我只需逐个位置加载它一次(使用我的DimensionItems文本) 问题症状 如果我选择并
我是否需要对此做些什么,或者它是ExpandableListView库中的一个bug 这是一个代码示例中的重写问题错误 在长时间学习了很多关于ExpandableListView的知识之后,什么都没有帮助,结果一切都像往常一样变成了我眼前的一个简单可怕的bug。有一个重写问题,括号内的一些代码应该在括号外(每次运行)。我有点尴尬 它应该是这样的,不需要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;
}
这是一个代码示例中的重写问题错误 在长时间学习了很多关于ExpandableListView的知识之后,什么都没有帮助,结果一切都像往常一样变成了我眼前的一个简单可怕的bug。有一个重写问题,括号内的一些代码应该在括号外(每次运行)。我有点尴尬 它应该是这样的,不需要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;
}
如果(convertView==null){LayoutInflater=(LayoutInflater)context.getSystemService(context.LAYOUT\u inflater\u SERVICE);convertView=inflater.inflate(R.LAYOUT.drawer\u right\u second,null);}找到id并设置文本,然后我明天会检查它。但在开始时顺序是正确的,如果我关闭组(孩子们离开)。但是,当我打开组(儿童是可见的)时,组项无序出现。这就是为什么它如此奇怪?如果(convertView==null){LayoutInflater充气机=(LayoutInflater)context.getSystemService(context.LAYOUT\u充气机\u SERVICE);convertView=inflater.inflate(R.LAYOUT.drawer\u right\u second,null);}找到id并设置文本,然后我明天会检查它。但在开始时顺序是正确的,如果我关闭组(孩子们离开)。但是,当我打开组(儿童是可见的)时,组项无序出现。这就是为什么它如此奇怪?计数ID问题对于lastSelectedView解决方案非常重要,该解决方案适用于不工作但在样本中常见的子对象(因为重写)。计数ID问题对于lastSelectedView解决方案非常重要,适用于不工作但在样本中常见的子对象(因为重写)。