1

나는이 매우 간단한 코드가 내 응용 프로그램 내에서 구현이 : 환경 설정 화면/활동가 표시되면 onTouchEvent가 PreferenceActivity에 호출되지 않았습니다 - 이유가 무엇입니까?

public class EditPreferences extends PreferenceActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Log.v(TAG, "onCreate"); 
    } 


    @Override 
    public boolean onTouchEvent(MotionEvent me) { 
    Log.v(TAG, "onTouchEvent"); 
    return false; 
    } 

} 

, 나는 내가 그 화면에 아무것도 만지지 때 "onTouchEvent는"로그 메시지를 볼 것으로 예상.

하지만 메시지가 없습니다. onTouchEvent가 호출되지 않는다고 알려줍니다.

(나는 그래도 "에서 onCreate"메시지를 볼 수 있습니다. 물론.)

은 왜 PreferenceActivity를의 onTouchEvent()는 를

를 호출되지 않습니다?

앱의 다른 구성 요소가 이전에 가로 채고있을 가능성이 있습니까?

아니면 구현 단계에서 뭔가 빠졌습니까? , 당신은 실제로 PreferenceActivity를 구현 기본적으로있는 ListView에 닿

+0

안녕하세요, super(). onTouchEvent()'''를 호출하지 않는 것으로 나타났습니다. 그걸 고치고 다른 것도 해봐. – OceanLife

답변

6

그게 전부 때문에, 당신은 다음 코드 대신 ListView에, 검사의 onTouch를 호출 할 필요가 : 당신의 onCreate 방법

getListView().setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     Toast.makeText(getApplicationContext(), "touched", Toast.LENGTH_SHORT).show(); 
     return false; 
    } 
}); 

합니다.

GOOD LUCK.

+0

당신은 천재입니다. 고맙습니다! – ih8ie8

+0

당신은 환영합니다 :) –

관련 문제