今天在做数字键盘输入法的时候,监听EditText的OnTouchListener事件,然后弹出输入法,发现事件里面的方法居然执行了两次。
<a></a>
代码如下:
Java代码
edit.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
NumberInputApp.setEdit(edit);
Intent intent = new Intent();
intent.setClass(NumberKeyBoardActivity.this, NumberInputActivity.class);
startActivity(intent);
return false;
}
});
经过同事的提示,发现有可能是EditText的事件太过灵敏了,在MotionEvent.ACTION_DOWN和MotionEvent.ACTION_UP各执行了一次,于是把代码改成如下即可:
/**加这个判断,防止该事件被执行两次*/
if (event.getAction() == MotionEvent.ACTION_DOWN) {
NumberInputApp.setEdit(edit);
Intent intent = new Intent();
intent.setClass(NumberKeyBoardActivity.this, NumberInputActivity.class);
startActivity(intent);
}
本文转自06peng 51CTO博客,原文链接:http://blog.51cto.com/06peng/963236,如需转载请自行联系原作者