Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Android 突出显示可展开列表视图中的子视图_Android_Listview_Expandablelistview - Fatal编程技术网

Android 突出显示可展开列表视图中的子视图

Android 突出显示可展开列表视图中的子视图,android,listview,expandablelistview,Android,Listview,Expandablelistview,当用户触摸项目时,我需要突出显示可扩展列表视图的子视图。我希望颜色保持不变,而不仅仅是提供视觉反馈。我能够通过以下方式实现这一目标: expandablelistview_options.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, Vi

当用户触摸项目时,我需要突出显示可扩展列表视图的子视图。我希望颜色保持不变,而不仅仅是提供视觉反馈。我能够通过以下方式实现这一目标:

expandablelistview_options.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 
            v.setBackgroundColor(Color.BLUE);
            return false;
        }
    });
但我的问题是,如果在同一父视图中选择另一个子视图,则上一个选择不会取消高亮显示


如何解决此问题?

您可以采用以下方法:

1) 将最近单击的项目的引用或位置保存为int或object

2) 然后,您可以创建这样的函数,并在单击项目时调用它,然后传递位置:

int lastItem = 0;

public void highlight(int clickedItem){
clickedItem.setBackground(//highlight color);
lastItem.setBackground(//unhighlight color);
lastItem = clickedItem;
}
3) 这将帮助您保存引用,并使您能够轻松处理最后一项和当前项。这只是我在处理这种情况时使用的一种方法。同样,你也必须使用这种方法

希望这有帮助