不愿意使用EditText onTouchListener函数调用

tan*_*tan 4 android android-edittext

可能重复:
public boolean onKey()调用两次?

我有一个EditText字段,它使用单选按钮调用popUp视图.PopUp和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;
            }
        }); 
Run Code Online (Sandbox Code Playgroud)

这是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>
Run Code Online (Sandbox Code Playgroud)

由于这个双重调用,popup很奇怪.dismiss()调用无法正常运行.可能是什么原因?这真的很烦人,谢谢.

dmo*_*mon 11

双重调用是因为触摸侦听器触发两次(至少!),一次触发手指落在EditText(ACTION_DOWN)上,一次触发手指(ACTION_UP).要修复它,只需确保只激活一个案例.或者,您可以设置一个onClick侦听器.

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

            return false;
      }
Run Code Online (Sandbox Code Playgroud)