我的视图中有一个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()
方法。
答案 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();
希望它会帮助你