Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ExpandableListView组项展开后出现无序_Java_Android_Expandablelistview - Fatal编程技术网

Java ExpandableListView组项展开后出现无序

Java ExpandableListView组项展开后出现无序,java,android,expandablelistview,Java,Android,Expandablelistview,我有一个ExpandableListView,它运行良好,只有一个例外。 ExpandableListView的工作原理类似于我加载组(带有维度文本)和子项(带有对象文本),并在内部处理它们。如果选择了一个孩子,我会被呼叫。但不是在两者之间 我从不更新它,我做了一个类似的操作。重新创建();当数据发生更改时,ExpandableListView始终具有相同的数据。在创建文本视图并在其上设置文本后被调用时,我只需逐个位置加载它一次(使用我的DimensionItems文本) 问题症状 如果我选择并

我有一个ExpandableListView,它运行良好,只有一个例外。

ExpandableListView的工作原理类似于我加载组(带有维度文本)和子项(带有对象文本),并在内部处理它们。如果选择了一个孩子,我会被呼叫。但不是在两者之间

我从不更新它,我做了一个类似的操作。重新创建();当数据发生更改时,ExpandableListView始终具有相同的数据。在创建文本视图并在其上设置文本后被调用时,我只需逐个位置加载它一次(使用我的DimensionItems文本)

问题症状

如果我选择并展开一个组项目(将手指放在组项目上,以便我可以看到子项),则以下组项目处于无序状态

我有八个分组项目0,1,2,3,4,5,6,7

如果我用两个孩子展开第三组,我会有一个0,1,2,3,c1,c2,6,7,5,4的列表,奇数

在我的代码中没有任何地方可以在扩展阶段进行交互,它都是在ExpandableListView.Java中的内部,在我的代码之外,调试器拒绝在其中设置断点。这是很难跟踪的,并且当不受干扰时,没有入口点可以在代码中放置断点


我是否需要对此做些什么,或者它是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解决方案非常重要,适用于不工作但在样本中常见的子对象(因为重写)。