尝试在装有Marshmallow 6.0的Acer Iconia One 10平板电脑上运行时,我的应用程序出现问题。此应用程序适用于运行Android 4.2.2的三星Galaxy平板电脑。
主视图由一系列TextView和EditTexts组成,用户可以在其中输入信息。字段需要能够接受文本或数字。我使用字段android:inputType="textCapSentences"
来完成此操作。它一直有效。然而,在6.0中,我得到了一种奇怪的行为,我认为这是一种类型的版本问题。如果我输入字母,一切都很好。但是当我尝试输入类似“Route 169”的字符串时,数字将不会出现。如果我输入“Route169”,它会将数字放在那里。看来,一旦我输入,EditText就会停止接受输入。我已经尝试了android:input="someInputType"
的每一个可能对我有用的变化,并没有任何修复它。我也尝试了android:digits="ABC....0123 "
解决方案。
这是我的EditText定义:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/highwayNameEditText"
android:text="*****"
android:inputType="textCapSentences"
android:layout_below="@+id/highwayNameTextView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/highwayNameTextView"
android:layout_alignEnd="@+id/highwayNameTextView" />
使用RelativeLayout在ScrollView中。我也试过添加一个关键事件监听器无济于事。 当键盘字符成功转移到EditText时,Logcat显示以下消息:
D/OpenGLRenderer: CacheTexture 4 upload: x, y, width height = 0, 261, 15, 19
当条目失败时,logcat中会出现以下内容:
View Root Impl: **[ANR Warning]Input routeing takes more than 6000ms**
Input event delivered to android.view.View Root Impl$Early PostImeInputStage
Input event delivered to android.view.View RootImpl$Native PostImeInputStage
Input event delivered to android.view.View Root Impl$ View PostImeInputStage
Input event delivered to android.view.View Root Impl$ Synthetic InputStage
序列重复。 注意:我已从输出中删除了时间,日期和位置信息,以使其更具可读性。
如您所见,系统看到了一个关键的新闻事件。该字符未进入“编辑文本”字符串。似乎也可能存在某种超时问题。感谢您抽出宝贵时间阅读本文。