我有一个EditText字段,它使用单选按钮调用popUp视图。 PopUp和RadioGroup实现很好。但我只是意识到按下或触摸EditText时,onTouchListener被调用2次。我也意识到我previous question的原因是同一个问题。 这是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的 由于这个双重调用,popup很奇怪。 dismiss()调用无法正常运行。可能是什么原因?这真的很烦人,谢谢你。<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>
答案 0 :(得分:11)
双重调用是因为触摸侦听器触发两次(至少!),一次触发手指落在EditText(ACTION_DOWN)上,一次触发手指(ACTION_UP)。要修复它,只需确保只激活一个案例。或者,您可以设置onClick
侦听器。
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
inflatePopUpOdemeSekli();
}
return false;
}