我在我的应用程序中实现了这个非常简单的代码:
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()没有被调用?
它是否有可能被应用程序中的其他组件先前截获?
或者我在实施步骤中遗漏了什么?
答案 0 :(得分:6)
那是因为,你实际上正在触摸默认由PreferenceActivity实现的ListView,你需要调用ListView的onTouch,检查以下代码:
getListView().setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Toast.makeText(getApplicationContext(), "touched", Toast.LENGTH_SHORT).show();
return false;
}
});
在onCreate
方法中。
好运。