【问题标题】:Android EditText, minus converted into a dot event though inputType="number|numberSigned|numberDecimal"Android EditText,减号通过 inputType="number|numberSigned|numberDecimal" 转换为点事件
【发布时间】:2014-09-14 11:25:07
【问题描述】:

我有一个用户,他拥有一台 LG VS890 4GAndroid 4.4.2。显然,每次当他试图在我的纬度/经度坐标输入EditText 中插入减号时,他的减号都会转换为一个点。如果他将负坐标粘贴到EditText 中,他会遇到同样的问题。

        <EditText
        android:id="@+id/long_degrees_et_id"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="10"
        android:inputType="number|numberSigned|numberDecimal" >

问题是他只有在使用软键盘时才会遇到这种情况。在硬键盘上,它按预期工作。

这是他在尝试输入坐标时的手机屏幕截图:

我知道这是一个inputType 问题,因为我给了他一个没有inputType 的构建并且它运行良好(除了他的键盘没有以数字类型打开)。

他是唯一一个报告这个问题的人,我无法重现它。我真的很想将输入类型保持为数字,以便键盘自动打开为数字。关于如何解决此问题的任何想法?

【问题讨论】:

  • 点和减号是同一个键。他试过长按点吗?
  • 我认为他做到了,反正我让他在编辑文本中粘贴负坐标,他仍然遇到同样的问题(减号自动转换为点)
  • 我在三星 S5 手机上得到了完全相同的结果。绝对是一个错误,同一设备的 Genymotion 模拟器将减号和小数点按钮显示为适当的单独按钮。看来这取决于设备,尽管 LG 和三星都很奇怪。
  • 我也有一个带有 lat/long 编辑字段的片段,只有 android:inputType="numberSigned|numberDecimal"
  • 嗯,对于我们的情况,我能想到的最好的解决方法是为半球放置一个 N/S 和 W/E 的组合,并避免要求用户输入“-”符号。

标签: android android-edittext android-softkeyboard android-inputtype


【解决方案1】:

这个布局元素

<EditText
    ...
    android:inputType="number|numberDecimal|numberSigned"
    ...
/>

应提供完整的数字键盘视图,并带有小数和符号条目。在我的大多数设备和模拟器上,“。”和“-”在单独的按钮上,在三星 Galaxy S5/SM-G900P/Android 4.4.2 上,“。”和“-”奇怪地出现在同一个按钮上(如 LG 设备上的上图所示,也是 4.4.2)。在某些设备上,弹出式键盘看起来很糟糕,因为它将符号和小数点放在同一个按钮上。

但是,在字段的第一个字符上,如果您双击 (.-) 按钮,将输入符号而不是小数。单击将输入小数。困难在于输入一些文字向您的用户解释该技巧。

也许这个设计是为了节省按钮空间。 (呃,我们不是刚刚降落在小行星上吗?)

使用这种组合并不像您希望的那样工作:

android:inputType="number|numberSigned|numberDecimal"
android:digits="0123456789.-"

另外,不要使用 android:numeric="decimal" 因为它是递减的,也不能解决问题。

@Adrian 建议 N/S W/E 将是一个很好的补充,但是,因为仍然需要 - 符号,所以不是替代品。有些用户认为罗盘玫瑰,有些认为-/+。

一种解决方案是创建一个自定义input method editor (IME). 这是一个example custom KeyboardView

特定于纬度和经度坐标的输入:我将使用自定义 IME/KeyboardView 路线,并对经纬度输入进行特定处理,因为每个字段也有范围值。

【讨论】:

  • 谢谢!我接受您的回答,因为这是我所拥有的最好的,我会尝试一下。听起来很有希望:D
【解决方案2】:

我的另一个用户也遇到了同样的问题,他发现他需要双击破折号/点键以保持破折号可见。我是为可能有同样问题的任何人提及这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2013-09-29
    • 2017-02-13
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 2011-07-01
    相关资源
    最近更新 更多