带有LG G4编号和小数的Android键盘

B.B*_*.B. 6 keyboard android android-layout

我在Android EditText中使用以下元素,使用带数字和小数的键盘来显示数量输入的键盘布局(例如22.12).

android:inputType="numberDecimal"
Run Code Online (Sandbox Code Playgroud)

它适用于所有设备,如三星,Nexus,索尼等.

键盘布局如下所示. Nexus键盘布局

LG G4上的键盘布局如下所示.LG G4键盘布局

任何人都可以请帮助,如何为LG G4使用十进制键盘.我已经尝试了android:inputType="phone"同样的问题.

我想坚持使用十进制输入,因为输入一个完整的字母数字键盘并不是很好.

提前致谢.

pme*_*aho 6

更新 似乎根本不需要签名来获得小数点分隔符,实际上是 TYPE_TEXT_FLAG_NO_SUGGESTIONS 弄乱了键盘,所以不要将它与数字输入类型一起使用。还注意到 LG 键盘看起来不同,这取决于您是否从代码和 XML END UPDATE设置输入类型

似乎 inputType 和数字的组合解决了这个问题。我有一个扩展 EditText 的类,所以我像这样初始化 EditText:

setKeyListener(DigitsKeyListener.getInstance("0123456789.,"));
setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
Run Code Online (Sandbox Code Playgroud)

我猜是因为 LG 在同一个按钮中捆绑了小数点分隔符和减号,您必须同时配置这两个功能,然后通过不将其包含在数字中来禁用“-”。

  • 另外,顺序很重要。如果在“setKeyListener()”之前使用“setRawInputType()”,则会丢失点。 (4认同)

小智 0

我能想到两种可能的方法,但我没有 LG 手机,所以我个人无法测试其中任何一种。但仍然值得一试。

  1. 尝试将输入类型指定为android:inputType="phone"。在开发网站上看到了这个,更多详细信息在这里https://developer.android.com/training/keyboard-input/style.html#Type

  2. 几年前我尝试过这个,它对我有用,但我的情况不同。在 xml 中的 EditText 项中指定一个属性。

    机器人:数字=“0123456789。”

它的作用是将视图设置为接受数字输入,并且仅接受数字属性中提到的特定项目。我个人不太使用它,它更像是一种黑客而不是解决方案,但它可以完成任务。更多信息请点击以下链接:

https://developer.android.com/reference/android/widget/TextView.html

尝试一下这些,希望它们对所有情况都有帮助。