listview 模仿用户点击事件。

正确的方法

gvFlow.post(new Runnable() {
                                @Override
                                public void run() {
                                    gvFlow.performItemClick(gvFlow.getChildAt(1), 1, gvFlow.getItemIdAtPosition(1));


                                }
                            });

以上触发的点击事件,在 clickListener里面可以获取到正确的view ,并对view进行状态改变。(这里放到post里面是为了 传过去的view不是nul,因为performItem是异步的。)

如果用

gvFlow.performItemClick(gvFlow.getAdapter().getView(mActivePosition,null,null),mActivePosition,gvFlow.getAdapter().getItemId(mActivePosition));

注:mActivePosition是你要点击的GridView或ListView的position

如果用上面的方法触发点击事件,在 clickListener里面不能得到正确的view ,对view的任何修改都 无效。

2016/04/05

前面的方法都 有小问题,

原文地址:https://www.cnblogs.com/longhs/p/5345849.html