首页 > 解决方案 > 如何解决 EditText InputType 被视为 Null 的问题,尽管它已指定

问题描述

即使我为 EditText 字段指定了 inputType,选择该字段也会导致光标在屏幕上闪烁然后消失。还显示了错误的键盘,并且日志表明它认为 inputType 为空。奇怪的是,如果我单击该字段半秒钟左右,它会按预期工作。

这是为了将数据输入到基于 JSON 文件生成的表单中。以前它工作时没有问题,但在途中某个地方坏了。我的一部分想知道这是否是一个模拟器错误,因为它似乎是在更新模拟器后开始的。下面概述了 XML 的一个示例。在这种情况下,它用于数字条目,但它也会影响其他 inputTypes。

<EditText
    android:layout_width="30dp"
    android:layout_height="50dp"
    android:layout_weight="1"
    android:paddingStart="15dp"
    android:paddingEnd="15dp"
    android:paddingTop="15dp"
    android:paddingBottom="15dp"
    android:inputType="numberDecimal|numberSigned"
    android:background="@drawable/form_entry_text_back"
    android:id="@+id/number_entry"
    tools:ignore="Autofill,LabelFor" />

预期:单击该字段会使该字段以可见光标聚焦。它还显示正确的键盘类型

实际:键盘上方的自动完成 UI 在屏幕上短暂闪烁。显示了键盘,但它并不总是正确的类型。EditText 字段中没有光标。除此之外,我得到以下 3 条日志行

01-19 11:41:38.300 1963-1963/com.android.inputmethod.latin I/LatinIME: Starting input. Cursor position = 0,0
01-19 11:41:38.377 1963-1963/com.android.inputmethod.latin I/LatinIME: Starting input. Cursor position = -1,-1
01-19 11:41:38.394 1963-1963/com.android.inputmethod.latin I/InputAttributes: InputType.TYPE_NULL is specified

这些是显示的唯一日志行

解决方法:如果我按住单击的时间比正常情况稍长一点,它将完全按预期工作。

标签: androidandroid-edittext

解决方案


推荐阅读