【问题标题】:EditText without auto-correction, etcEditText 没有自动更正等
【发布时间】:2011-04-17 12:33:12
【问题描述】:

我的 EditText 需要接受由部分单词、名称等组成的输入。至少在我的 HTC Desire 上,这很困难,因为键盘想要建议和/或更正某些条目(例如,将“gor”更改为“for ”)。我尝试在视图上设置 textNoSuggestions,但这并不能解决问题。

有什么简单的解决办法吗?

【问题讨论】:

    标签: android


    【解决方案1】:

    试试这个:

    android:inputType="textFilter"
    

    如果这不起作用,请尝试:

    android:inputType="textFilter|textNoSuggestions"
    

    【讨论】:

    • 在使用最新版 Google 键盘的 Nexus 5 上无法使用,但可以使用 textVisiblePassword
    【解决方案2】:

    您可以通过代码执行此操作。如下设置 EditText 的输入类型:

    txtEmail = (EditText) findViewById(R.id.txtEmail);
    txtEmail.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
    

    有关所有可用输入类型选项的列表,请参阅 http://developer.android.com/reference/android/text/InputType.html

    【讨论】:

      【解决方案3】:

      其他建议是正确的,但SwiftKey 已决定it will ignore the inputtype values "in response to user requests"。虽然我同意这是一个坏主意,因为它与 Google 指南相矛盾,并且开发人员通常有充分的理由禁用自动更正(如用户名字段、姓氏等),但它仍然是 Android 设备最常用的键盘应用程序,所以这可能是个大问题。

      解决方法是使用任一

      android:inputType="textVisiblePassword"
      

      .setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
      

      【讨论】:

      • 然后准备好字体等宽字体有问题。 :)
      • 谢谢你!我确认它适用于 Swiftkey,而其他解决方案(textNoSuggestions 和/或 textFilter)则没有。
      • @LéonPelletier:请解释一下。
      • 在 API 16 之前,您需要应用转换。在 API 16+ 上,您可以设置字体。参考stackoverflow.com/questions/3406534/… 非常老的bug。在设计登录屏幕时影响我迄今为止在 Android 上编写的所有代码。
      • Swiftkey 拒绝这样做并且仍然大写,但至少关闭了 Swiftkey 和 Google 键盘中的建议... :(
      【解决方案4】:

      如果您想要 多行 EditText 而不显示下划线(自动更正),请尝试以下操作:

          myEditText.setInputType(InputType.TYPE_CLASS_TEXT | 
             InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
      

      这里是 XML:android:inputType="textNoSuggestions|textMultiLine"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-07
        • 1970-01-01
        • 1970-01-01
        • 2013-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-10
        相关资源
        最近更新 更多