대신 모든 Activity
에서이를 구현, 당신은 이런 일 Activity
을 만들 수 있습니다
public class BaseActivity extends Activity
하고 BaseActivity
에 onInterceptTouchEvent
를 구현합니다.
그리고 다른 모든 Activities
당신이 BaseActivity
UPDATE 확장해야합니다 : 당신은 화면 전체에서 이벤트를 수신하려는 경우가 onTouch
을 사용해야합니다 을. 이렇게하려면 Activity
의 모든 xml 파일에서 xml (Linearlayout
, Relativelayout
, Framelayout
또는 기타)의 루트보기에 id
을 부여해야합니다.
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