当用户触摸项目时,我需要突出显示可扩展列表视图的子视图。我想要保留颜色,而不仅仅是提供视觉反馈。我能够通过以下方式实现这一目标:
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;
}
});
但我的问题是,如果我在同一父视图中选择另一个孩子,则之前的选择不会突出显示。
我该如何解决这个问题?
答案 0 :(得分:1)
您可以采取以下方法:
1)保存单击为int或object的最新项目的引用或位置。
2)然后你可以创建一个这样的函数,并在项目点击时调用它并传递位置:
int lastItem = 0;
public void highlight(int clickedItem){
clickedItem.setBackground(//highlight color);
lastItem.setBackground(//unhighlight color);
lastItem = clickedItem;
}
3)这将帮助您保存参考,并可以轻松处理最后和当前项目。这只是我处理这类案例时使用的一种方法。你必须使用这种方法。
希望这有帮助。