大家都知道,我們的activity中有ontouchevent方法,可以用來實現觸控事件的監聽。
activity的觸控事件
@override
public
boolean
ontouchevent
(motionevent event)
但是對於fragment,其中卻沒有這個方法,如果我們在fragment中想要監聽觸控事件 該如何實現呢?
我的方法是,自己實現觸控事件的分發。
先定義乙個介面
public inte***ce myontouchlistener
再搞乙個list儲存listener
private arraylistontouchlisteners = new arraylist(
10);
再自己實現註冊,與銷毀以及分發
fragment觸控事件分發,將觸控事件分發給每個能夠響應的fragment
@override
public boolean dispatchtouchevent(motionevent ev)
}return super.dispatchtouchevent(ev);
}public void registermyontouchlistener(myontouchlistener myontouchlistener)
public void unregistermyontouchlistener(myontouchlistener myontouchlistener)
那麼在fragment中 我們這樣使用即可:初始化***,然後向activity註冊,同時***中監聽手勢動作。
ontouchlistener = new musicactivity.myontouchlistener()
};((musicactivity) getactivity()).registermyontouchlistener(ontouchlistener);
如何在Revit中監聽鍵盤事件
小夥伴們在做revit二次開發的時候,可能會需要在自己做的外掛程式執行時,去監聽某個按鍵然後做出相應的反應。比如在生成乙個很大的模型時,發現不對勁,想停止程式執行,這個時候就可以通過監聽按鍵事件去取消這個正在執行的程式,或者通過監聽按鍵事件去觸發特定事件。為了實現全域性監聽,這裡使用了hook技術,...
如何在服務程式中監聽硬體事件
主要通過registerdevicenotification函式來完成,網上一般能找到都是window程式,很少缺少服務程式的例子。2.svcmain 函式中 dev broadcast deviceinte ce dev broadcast deviceinte ce dev broadcast ...
如何在程式中延時
方法一 使用sleep函式,如延時2秒,用sleep 2000 方法二 使用sleep函式的不利在於延時期間不能處理其他的訊息,如果時間太長,就好象宕機一樣,利用coledatetime類和coledatetimespan類實現延時就不會出現那樣的問題 coledatetime start time...