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

标签 android 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) {
        }
}

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

最佳答案

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

关于android - Xamarin.Android EditText 事件未在设备上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49028470/

相关文章:

android - 哪里可以找到安卓崩溃历史

android - 如何在/Android/obb下创建文件夹?

android - 在 Android 中实现 Picasa

c# - Xamarin - 多目标 - "' System.ValueTuple` 2' is declared in multiple referenced"

java - 尝试查看用户通过使用数组列表填写了多少编辑文本

java - 在 CSV 映射期间将 't'/'f' 解析为 boolean 值

c# - 在 C# 和 Xamarin 开发的移动应用程序上使用 Braintree

Xamarin Android 绑定(bind)不正确的方法覆盖名称

android - TextInputLayout 提示颜色

java - 在 RecyclerView 中滚动后 EditText 丢失内容