Android 当ExpandableListView获得焦点时,处理子选择的正确方法是什么?

Android 当ExpandableListView获得焦点时,处理子选择的正确方法是什么?,android,focus,selection,expandablelistview,android-3.0-honeycomb,Android,Focus,Selection,Expandablelistview,Android 3.0 Honeycomb,我有一个ExpandableListView,然后还有一些其他控件,可以将焦点放在它的右侧。像这样的。注意:已选择Child2 Group1 Child1 +-----------------------+ *Child2* | | Child3 | Other focusable View. | Child4 | | Child5 +-------

我有一个
ExpandableListView
,然后还有一些其他控件,可以将焦点放在它的右侧。像这样的。注意:已选择Child2

Group1       
  Child1    +-----------------------+
 *Child2*   |                       |
  Child3    | Other focusable View. |
  Child4    |                       |
  Child5    +-----------------------+
使用d-pad,如果我按向右键,焦点将转到另一个视图。此时,如果我在d-pad上按left,焦点将返回到我的
ExpandableListView
,但会选择Child3而不是Child2(因为它位于中间)


通常,如何确保在焦点离开然后返回到my
ExpandableListView
时,先前选择的子级仍然是选定的子级?有没有关于变通办法的想法?我尝试缓存当前选择,然后调用
setChildSelected()
,但由于某些原因,选择没有发生。

好吧,我解决了这个问题,在焦点丢失时缓存当前组和子级,然后在listview重新获得焦点时显式地重新设置组/子级。我还必须禁用listview,并在不同的地方重新启用它。这是一个黑客,但它的工作

如何处理expandablelistview中的焦点位置?我使用onitemselectedlistener,但每当不同的组打开时,位置会不断变化。谢谢