Android ExpandableListView中的子选择

Android ExpandableListView中的子选择,android,expandablelistview,Android,Expandablelistview,在ExpandableListView中,是否可以首先选择一个子项,以便展开包含的组并将列表滚动到此子项的位置 我原以为setSelectedChild会起作用,但它没有给出任何结果 我使用以下代码进行了测试: public class MainActivity extends Activity { private static final String TITLE = "title"; @SuppressWarnings("serial") @Override protected void

ExpandableListView
中,是否可以首先选择一个子项,以便展开包含的组并将列表滚动到此子项的位置

我原以为
setSelectedChild
会起作用,但它没有给出任何结果

我使用以下代码进行了测试:

public class MainActivity extends Activity {

private static final String TITLE = "title";

@SuppressWarnings("serial")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ExpandableListView listView = new ExpandableListView(this);
    SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(this, 
        new ArrayList<Map<String,String>>() {
            {
                this.add(new HashMap<String, String>() {
                    {
                        this.put(TITLE, "Group 1");
                    }
                });
                this.add(new HashMap<String, String>() {
                    {
                        this.put(TITLE, "Group 2");
                    }
                });
                this.add(new HashMap<String, String>() {
                    {
                        this.put(TITLE, "Group 3");
                    }
                });
            }
        }, 
        android.R.layout.simple_expandable_list_item_1, 
        new String[] { TITLE }, 
        new int[] { android.R.id.text1 }, 
        new ArrayList<List<? extends Map<String,String>>>() {
            {
                this.add(new ArrayList<Map<String,String>>() {
                    {
                        this.add(new HashMap<String, String>() {
                            {
                                this.put(TITLE, "Child 1-1");
                            }
                        });
                        this.add(new HashMap<String, String>() {
                            {
                                this.put(TITLE, "Child 1-2");
                            }
                        });
                    }
                });
                this.add(new ArrayList<Map<String,String>>() {
                    {
                        this.add(new HashMap<String, String>() {
                            {
                                this.put(TITLE, "Child 2-1");
                            }
                        });
                        this.add(new HashMap<String, String>() {
                            {
                                this.put(TITLE, "Child 2-2");
                            }
                        });
                    }
                });
                this.add(new ArrayList<Map<String,String>>() {
                    {
                        this.add(new HashMap<String, String>() {
                            {
                                this.put(TITLE, "Child 3-1");
                            }
                        });
                        this.add(new HashMap<String, String>() {
                            {
                                this.put(TITLE, "Child 3-2");
                            }
                        });
                    }
                });
            }
        },
        android.R.layout.simple_expandable_list_item_2,
        new String[] { TITLE },
        new int[] { android.R.id.text1 }
    );
    listView.setAdapter(adapter);
    setContentView(listView);

    listView.setSelectedChild(1, 1, true);
}
}
公共类MainActivity扩展活动{
私有静态最终字符串TITLE=“TITLE”;
@抑制警告(“串行”)
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ExpandableListView listView=新的ExpandableListView(此);
SimpleExpandableListAdapter=新的SimpleExpandableListAdapter(此,
新ArrayList(){
{
this.add(新HashMap()){
{
本次出售(标题为“第1组”);
}
});
this.add(新HashMap()){
{
本协议(标题为“第2组”);
}
});
this.add(新HashMap()){
{
本次出售(标题为“第3组”);
}
});
}
}, 
android.R.layout.simple\u可扩展\u列表\u项目\u 1,
新字符串[]{TITLE},
新的int[]{android.R.id.text1},

新建ArrayList在
setSelectedChild()之前添加对
listView.expandGroup()
的调用


setSelectedChild()
中设置为true的
shouldExpandGroup
参数似乎仅在至少有一个组首先展开时才起作用。

在可展开列表视图中,是否可以先选择一个子项,以便展开包含的组,并将列表滚动到此子项的位置:

//select child and open it's group
ExpListView.setSelectedChild(groupPos, childPos, true);
//scroll to selected child
ExpListView.smoothScrollToPosition(ExpListView.getFlatListPosition(ExpListView.getPackedPositionForChild(groupPos, childPos)));

为什么文档没有说明setSelectedChild()中设置为true的shouldExpandGroup参数只有在至少有一个组首先展开时才起作用。
?对我来说,它只是展开,而不是实际选择:(