onTouchEvent没有调用PreferenceActivity - 为什么?

时间:2013-06-19 10:18:16

标签: android ontouchevent ontouchlistener 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()没有被调用?

它是否有可能被应用程序中的其他组件先前截获?

或者我在实施步骤中遗漏了什么?

1 个答案:

答案 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方法中。

好运。