これをすべてに実装する代わりに、次のようActivity
に作成できますActivity
。
public class BaseActivity extends Activity
に実装onInterceptTouchEvent
しますBaseActivity
。
次に、他のすべてActivities
から拡張する必要がありますBaseActivity
更新:onTouch
画面全体でイベントをリッスンする場合
は、を使用する必要があります。これには、のすべてのxmlファイルで、xmlのルートビュー(、、など)にを指定Activity
する必要があります。したがって、他の人から入力を取得できるようにするには、次のようにルートビューを渡す必要があります。id
Linearlayout
Relativelayout
Framelayout
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);
}
}