【问题标题】:Android Keyboard with number and decimal for LG G4适用于 LG G4 的带数字和小数的 Android 键盘
【发布时间】:2016-10-09 20:30:47
【问题描述】:

我在 Android EditText 中使用以下元素,有一个带有数字和小数的键盘,用于显示 金额输入 的键盘布局(例如22.12)。

android:inputType="numberDecimal"

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

键盘布局如下所示。

LG G4 的键盘布局如下所示。

谁能帮忙,如何为 LG G4 配备十进制键盘。我已经试过android:inputType="phone",还是一样的问题。

我想坚持使用十进制输入,因为使用完整的字母数字键盘输入金额不是很好。

提前致谢。

【问题讨论】:

  • LG K10 Android 6.0 出现同样的问题。

标签: android android-layout keyboard


【解决方案1】:

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

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

setKeyListener(DigitsKeyListener.getInstance("0123456789.,"));
setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);

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

【讨论】:

  • 另外,顺序很重要。如果你在setKeyListener() 之前先setRawInputType(),你就输了。
【解决方案2】:

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

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

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

    android:digits="0123456789."

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

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

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

【讨论】:

  • @B.B,非常抱歉.. 看到您已经尝试过 android:inputType="phone" 请尝试在我的回答中使用第二个选项来实施。
  • android:digits="0123456789,." 已经到位。没用。
猜你喜欢
  • 1970-01-01
  • 2018-01-10
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 2010-11-13
  • 2016-08-02
相关资源
最近更新 更多