C# KeyPress/EditorAction事件处理程序被多次调用

C# KeyPress/EditorAction事件处理程序被多次调用,c#,android,xamarin,xamarin.android,event-handling,C#,Android,Xamarin,Xamarin.android,Event Handling,我将EditText控件的Keypress和EditorAction事件处理程序组合到一个名为InputField\u KeyPressEditorAction的方法中。当我输入一些文本并按Enter键时,以下代码会执行多次(2、3或更多): 将事件处理程序分配给控件的部分: _inputField = FindViewById<EditText>(Resource.Id.editTextScan); _inputField.KeyPress += I

我将EditText控件的
Keypress
EditorAction
事件处理程序组合到一个名为InputField\u KeyPressEditorAction的方法中。当我输入一些文本并按Enter键时,以下代码会执行多次(2、3或更多):

将事件处理程序分配给控件的部分:

        _inputField = FindViewById<EditText>(Resource.Id.editTextScan);
        _inputField.KeyPress += InputField_KeyPressEditorAction;
        _inputField.EditorAction += InputField_KeyPressEditorAction;
\u inputField=findviewbyd(Resource.Id.editTextScan);
_inputField.KeyPress+=inputField\u KeyPressEditorAction;
_inputField.EditorAction+=inputField\u键按EditorAction;

这种奇怪行为的原因是什么?我做错了什么吗?

将为每个键向上、向下、长按和多键调用
EditText.EditorAction
TextView.IOnEditorActionListener
)以及10个不同的基于
ImeAction
的操作


您应该将keypress和editaction事件处理程序分离为单独的函数。

您确定这些事件没有连接多次吗?如果您不确定是否可以在连接它们之前将其解开(
-=
)。不,它们只连接了一次。好的,我将分离事件处理程序并给出反馈,如果它有效。实际问题是,对于KeyEventActions,代码执行了一次。对于KeyEventActions,按下Enter键后,向下和向上分别执行一次。把上面的部分注释掉就行了。
        _inputField = FindViewById<EditText>(Resource.Id.editTextScan);
        _inputField.KeyPress += InputField_KeyPressEditorAction;
        _inputField.EditorAction += InputField_KeyPressEditorAction;