当用户触摸项目时,我需要突出显示可扩展列表视图的子视图。我希望颜色留下来,而不仅仅是提供视觉反馈。我能够以:
来实现这一目标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或对象的最新项目的参考或位置。
2(然后,您可以制作这样的函数,然后在项目上调用它并通过位置:
:int lastItem = 0;
public void highlight(int clickedItem){
clickedItem.setBackground(//highlight color);
lastItem.setBackground(//unhighlight color);
lastItem = clickedItem;
}
3(这将有助于您保存参考,并使其易于处理最后一个项目和当前项目。这只是我在处理这样的案例时使用的一种方法。您必须使用这种方法。
希望这会有所帮助。