如何检测用户何时点按Android中的视图

Sam*_*ton 8 android

我想检测用户何时点击我的Android应用程序中的视图中的任何位置.

我的代码看起来像这样:

linearLayout = (LinearLayout) findViewById(R.id.linearLayout); // main layout
// ...
linearLayout.setOnTouchListener(this);
// ...
public boolean onTouch(View v, MotionEvent event) {
    Toast.makeText(this, "Touch!", 1000);
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        Toast.makeText(this, "Down!", 1000);
        return true;
    }
    return false;
}   
Run Code Online (Sandbox Code Playgroud)

...但是当我点击视图时,我没有得到Toast!

触摸事件是否在模拟器中起作用 - 或者我的代码中出了什么问题?

Dav*_*ebb 12

我认为问题在于您的消息显示代码而不是您的触摸检测代码.

您正在创建Toast对象,但您没有显示它.你需要调用该show()方法.

而且,duration参数makeText()方法应该是一个LENGTH_SHORTLENGTH_LONG.

尝试:

Toast.makeText(this, "Down!", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

  • +1.我总是*忘记将`.show()`添加到我的祝酒词中! (4认同)