不甘的EditText onTouchListener函数调用[复制](Unwilling Edit

2019-06-24 02:07发布

可能重复:
公共布尔安其()调用两次?

我有调用带有单选按钮的弹出视图一个EditText字段。 弹出窗口并执行RadioGroup中不错的作品。 按下或触摸到的EditText,onTouchListener被称为2倍的时候,但我只是意识到。 我也只是知道,我的原因, 前面的问题是同一个问题。 这里是的EditText上;

etOdemeSekli = (EditText)findViewById(R.id.etOdemeSekli);
        etOdemeSekli.setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                inflatePopUpOdemeSekli();
                Log.d("****","Inflate");                    
            return false;
            }
        }); 

这里是EditText上的XML

<EditText
    android:layout_weight="1"                   
    android:id="@+id/etOdemeSekli"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:hint="@string/odemeSekliHint"
    android:focusableInTouchMode="false">
</EditText>

由于这种双重调用,弹出行为怪异。 在解雇()调用不能正常工作。 可能是什么原因? 这是真的真的很烦人,谢谢。

Answer 1:

双通话是因为触摸听者闪光两次(至少!),一旦当上的EditText(ACTION_DOWN)手指的土地,一旦当你手指抬(ACTION_UP)。 为了解决这个问题,只是确保你只激活一个案例。 另外,您也可以只设置一个onClick监听器来代替。

      public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_UP) {
              inflatePopUpOdemeSekli();
            }

            return false;
      }


文章来源: Unwilling EditText onTouchListener Function Call [duplicate]