Xamarin.Android EditText事件未在设备上触发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xamarin.Android EditText事件未在设备上触发相关的知识,希望对你有一定的参考价值。

我有一个Xamarin.android应用程序,并遇到一个问题,EditText字段上的事件没有在我的设备上触发。他们在模拟器上工作,但不是我的Nexus 5X。有什么想法吗?

布局

<EditText
android:id="@+id/usernameTextField"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/LoginTheme.EditText"
android:background="@android:color/transparent"
android:hint="user name"
android:lines="1"
android:maxLines="1"
app:layout_constraintTop_toBottomOf="@id/topBorder"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintWidth_max="350dp" />

UsernameTextField = FindViewById<EditText> (Resource.Id.usernameTextField);
    PasswordTextField = FindViewById<EditText> (Resource.Id.passwordTextField);


UsernameTextField.KeyPress += (sender, e) => {

    if (e.KeyCode == Keycode.Enter && e.Event.Action == KeyEventActions.Down) {
        this.PasswordTextField.RequestFocus();
    }
};
UsernameTextField.KeyPress += (sender, e) => {

    if (e.KeyCode == Keycode.Enter && e.Event.Action == KeyEventActions.Down) {
        this.PasswordTextField.RequestFocus();
    }
};

PasswordTextField.KeyPress += (sender, e) => {

    if (e.KeyCode == Keycode.Enter && e.Event.Action == KeyEventActions.Down) {
        this.DoLogin ();
    }
};

我也尝试过使用这样的IME动作。

UsernameTextField.EditorAction += HandleEditorAction;
PasswordTextField.EditorAction += HandleEditorAction;

private void HandleEditorAction(object sender, TextView.EditorActionEventArgs e) {
        e.Handled = false;
        if (e.ActionId == ImeAction.Send) {
        }
}

似乎没什么用。当我按下虚拟键盘上的enter按钮时,它只在EditText字段中创建一个新行。有任何想法吗?

答案

发布后五分钟我就像往常一样找到解决方案。无论出于何种原因,向EditText添加和inputType似乎可以解决问题并且KeyPress事件现在正在工作。也许这是Xamarin中的一个错误?

以上是关于Xamarin.Android EditText事件未在设备上触发的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Android EditText事件未在设备上触发

如何在xamarin android的MainActivity上的dialogFragment中显示editText的文本?

如何限制用户输入EditText(Xamarin.Android)中小数点分隔符后的最大2位或3位数?

Xamarin Android通过一种风格控制文本颜色

如何使用 Xamarin Android 在 Edit Text 上实现 TextWatcher 接口?

Xamarin.Form与Xamarin.Android或Xamarin.IOS的区别简述