3

我有一个附加onTouchListener到它的 EditText:

m_outputField.setOnTouchListener(touchListener);

现在我看到onTouch每次实际触摸(点击)都会调用 3 次:

class MyTouchClickListener implements View.OnTouchListener
{
    @Override
    public boolean onTouch(View v, MotionEvent event) 
    {
        //do something

        return true;
    }

}

我想我在这里做错了什么,如何解决它(或至少忽略第二次和第三次调用)?

谢谢

4

2 回答 2

13

这应该解决它:

class MyTouchClickListener implements View.OnTouchListener
{
    @Override
    public boolean onTouch(View v, MotionEvent event) 
    {
        if(event.getAction()==MotionEvent.ACTION_UP)
        {
            //do something
        }
        return true;
    }

}
于 2013-07-08T18:53:56.063 回答
0

为避免此问题,请将您的setOnClickListener()从 editText 替换为setOnFocusChangeListener().

yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if(hasFocus){
           // Do Something Here..
        }
    }
});
于 2016-07-19T14:09:12.437 回答