2012-11-29 51 views
1

我有一個Activity,生成一些MotionEvent(通過MotionEvent.obtain())。我想將這些生成的觸摸/動作事件傳遞給Activity的兒童意見。從文檔中,Activity.onTouchEvent()僅在其中一個子視圖不處理該事件時調用,這意味着我無法調用該按鈕將生成的觸摸事件傳遞給子項。我的活動是否可以將生成的觸摸/動作事件發送到其子視圖?

有沒有辦法從父發送產生的觸摸事件MainActivity其子女的意見,以這樣的方式,他們正常響應(例如,如果一個子視圖具有OnClickListener集,我送一生成向下/向上觸摸事件的子視圖,我想OnClickListener被稱爲)?

請注意,我並未嘗試將觸發事件從一個活動發送到另一個活動,而且這些都在我自己的應用程序中。另外,我的設備還沒有紮根,所以需要root的解決方案不能幫助我。

+1

看看的[儀表(http://developer.android.com/reference/android/app/Instrumentation.html)班太 – FoamyGuy

+0

@FoamyGuy:很酷,看起來好像很有用。謝謝! – Cornstalks

回答

1

只是想通了。解決方案是使用Activity.dispatchTouchEvent()。例如,下面註冊爲我的看法click事件:

dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 200, 200, 0)); 
dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 200, 200, 0)); 
相關問題