问题描述
- android中,进入界面在onresume中怎么模拟gridview的item被点击。
- 我想实现的功能是,在进入界面的时候,gridview的item不用自己按下就被点击,然后可以执行OnItemClickListener里的方法。ps:在activity中,怎么判断gridview的第几个item被选中,如果根据选中的item,获取gridview下的子控件。谢谢回答。
解决方案
模拟发送点击动作呗
1. // 模拟屏幕点击事件 - 只在 Activity 中有用
2. public void setMouseClick(){
3. MotionEvent evenDownt = MotionEvent.obtain(System.currentTimeMillis() System.currentTimeMillis() + 100
4. MotionEvent.ACTION_DOWN 100 400 0);
5. dispatchTouchEvent(evenDownt);
6. MotionEvent eventUp = MotionEvent.obtain(System.currentTimeMillis() System.currentTimeMillis() + 100
7. MotionEvent.ACTION_UP 100 400 0);
8. dispatchTouchEvent(eventUp);
9. evenDownt.recycle();
10. eventUp.recycle();
11. }
解决方案二:
点击事件既然叫做点击事件,作用就是响应点击动作,来进行操作,不管是模拟点击还是实际点击,都要有点击这个动作。
如果你想执行某操作,又不想进行点击,那又何必把操作写在点击事件里,直接写到oncreate里,不就进了界面就执行了。
解决方案三:
好吧,也许我说的有点问题,换个方式再说一次好了……如果是想在离开页面再回来时,恢复先前状态的话,不必执着于“再点一次”这件事,
而把注意力放到恢复该点击事件所形成的结果上。
例如,点一个item,在页面容器中放入了一个fragment,离开再回来,
不用去记录“点的哪个item,再点一次”
而是,记录“离开时放入的是哪个fragment,在容器中重新加载该fragment”,这样就行了。
同样,点一个item,显示了某些东西,离开再回来,
不用去记录“点的哪个item,再点一次”
而是,记录“离开时哪些组件内容发生了变化,发生了什么变化,在恢复页面时,把这些变化恢复了”,这样就行了。
解决方案四:
看看grideview有没有类似 pre...click的方法,有的话就在onresume调用,button是有这个方法的,或者你在item中加button