而是在每一個Activity
實現這個的,你可以創建一個Activity
這樣的:
public class BaseActivity extends Activity
,並在您BaseActivity
實施onInterceptTouchEvent
。
然後從所有其他Activities
你將不得不延長BaseActivity
UPDATE: 如果你想聆聽到整個屏幕的事件,您將不得不使用onTouch
。這就要求在你的Activity
的每個xml文件中,你必須給你的xml的根視圖(Linearlayout
,Relativelayout
,Framelayout
或其他)提供一個id
。因此,爲了讓您的BaseActivity
從其他Activities
輸入你將有你的根視圖傳遞給它的,就像這樣:
public class MyActivity extends BaseActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
super.setRootView(findViewById(R.id.rootView));
}
}
public class BaseActivity extends Activity implements OnTouchListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void setRootView(View rootView){
rootView.setOnTouchListener(this);
}
public boolean onTouch(View v, MotionEvent event) {
Log.d("BaseActivity", "onTouch!");
return super.onTouchEvent(event);
}
}
這可能是解決我的問題的可能解決方案!我會嘗試一下,並且如果它在工作,就會對你的評論「有用」!非常感謝!! – zapotec
好的伴侶,祝你好運! – Carnal
好吧,我明白了......但是,現在我有一個問題。 ¿如何使用「onInterceptTouchEvent」方法?我正在檢查,它是從「ViewGroup」(所以,這意味着,從LinearLayout,RelativeLayout等....的方法......但我的BaseActivity沒有任何alyout !!我怎麼能使用它???任何人都知道任何教程??? – zapotec