onTouchListener 执行两次操作

Fil*_*lip 1 android listeners spinner ontouch

我正在尝试使用文本(无按钮)创建一些字段,然后单击以打开日期选择器对话框。我完全是初学者,我正在尝试简单的例子。

 firstbirth.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                Toast.makeText(getApplicationContext(), "ahooj", Toast.LENGTH_LONG).show();
                return false;
            }
        });
Run Code Online (Sandbox Code Playgroud)

firstbirth 是微调器,我用 Edittext 尝试过,结果是一样的。有谁能够帮助我?

提前致谢!

pum*_*kee 5

改用 OnClickListener 。

setOnClickListener(View.OnClickListener l)
Run Code Online (Sandbox Code Playgroud)

OnTouchListeners 将触发多个触摸事件(如按下、触摸等),而 OnClickListener 只会被触发一次(onClick :))

如果您出于某种原因想要使用 OnTochListener,您可以确保它只调用一次。

尝试:

@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_UP {   // another option would be ACTION_DOWN for example
     Toast.makeText(getApplicationContext(), "ahooj", Toast.LENGTH_LONG).show();
     return true;
    }
return false;
}
Run Code Online (Sandbox Code Playgroud)