如何以编程方式执行ExpandableListView子项单击

时间:2015-08-08 06:53:54

标签: android expandablelistview expandablelistadapter

我的视图中有一个ExpandableListView。我已经实现了它的子点击监听器,并且它运行得很好。

@Override
public boolean onChildClick(ExpandableListView parent, View view,
        int groupPosition, int childPosition, long id) {
}

现在,我还想以编程方式执行子点击。是否可以通过编程方式调用它?

我试过在convertView方法上返回我的getChild(),然后单击“{1}}”,

((View)updateListAdapter.getChild(0, 2)).performClick();

但没有运气。它没有调用onChildClick()方法。

2 个答案:

答案 0 :(得分:1)

ExpandableListView确实有方法

public boolean performItemClick (View v, int position, long id)

但只有一个立场论点;小组/小孩在哪儿?

我查看了代码,它想要的是 flat 位置。所以这样的事情应该有用(对不起,我还没试过):

long packedPosition = ExpandableListView.getPackedPositionForChild(group, child);
int flatPosition = expListView.getFlatListPosition(packedPosition);
expListView.performItemClick(view, flatPosition, childId);

答案 1 :(得分:0)

是的可能,您需要从ChildView然后ExpandableListView获取performClick(),例如:

expandableList.getExpandableListAdapter().getChildView(1, 0, true, null, null).performClick();

效果很好......

一旦ChildView放在口袋里,您也可以访问&玩其子视图,如:

(expandableList.getExpandableListAdapter().getChildView(1, 0, true, null, null).findViewById(R.id.btn_continue)).performClick();

希望它会帮助你