如果有一个场景:需要点击一个View(比如EditText)
那就可以用这个:
/**
* 模拟点击
* @param view 任意一个控件(View)
*/
public void simulateClick(View view) {
long downTime = SystemClock.uptimeMillis();
int[] ints = new int[2];
view.dispatchTouchEvent(MotionEvent.obtain(downTime, downTime, MotionEvent.ACTION_DOWN,
ints[0] + 5, ints[1] + 5, 0));
view.dispatchTouchEvent(MotionEvent.obtain(downTime, downTime, MotionEvent.ACTION_UP,
ints[0] + 5, ints[1] + 5, 0));
}
原理是 创建一个在目标控件的位置事件去分发,再让控件处理事件